【发布时间】:2017-12-07 06:58:22
【问题描述】:
我想通过循环来创建一棵二叉树。我知道如何编写一个非常基本的二叉树。
class Tree(object):
def __init__(self):
self.left = None
self.right = None
self.data = None
root = Tree()
root.data = 75
root.left = Tree()
root.left.data = 95
root.right = Tree()
root.right.data = 64
root.left.left = Tree()
root.left.left.data = 32
root.left.right = Tree()
root.left.right.data = 93
root.left.left = Tree()
root.right.left.data = 32
root.left.right = Tree()
root.right.right.data = 93
print(root.data)
手动打字很乏味,如果我有一个数字列表:
list = [1,2,3,4,5,6,7]
并通过一个循环来按这个顺序创建一个二叉树:
1
2 3
4 5 6 7
我该怎么写呢?并且因为我使用它来计算所有路径的总和,你如何导航/遍历二叉树:
【问题讨论】:
-
节点 5 属于节点 2 还是节点 3,还是同时属于它们?
-
与this 相关。虽然不是一个完整的副本,因为 OP 希望自动化创建树的过程。
-
您需要跟踪当前树的高度。
-
@juanpa.arrivillaga 抱歉,我不明白什么是节点。我对二叉树很陌生。
-
@PoChenLiu 节点 = 树中的一个数字。