class TreeNode(object):
def __init__(self, root='#', left=None, right=None):
self.root = root
self.left = left
self.right = right
def create_tree(self, num_list, i):
if i < len(num_list):
tree = TreeNode(num_list[i])
print('root', tree.root, 'i:', i)
if tree.root == '#':
return '#'
else:
tree.left = self.create_tree(num_list, 2*i+1)
print('left', tree.root, tree.left, 'i:', i)
tree.right = self.create_tree(num_list, 2*i+2)
print('right', tree.root, tree.right, 'i:', i)
return tree
def visit_tree(self):
print(self.root)
if self.root != '#':
if self.left != '#' and self.left:
self.left.visit_tree()
if self.right != '#' and self.right:
self.right.visit_tree()
else:
print('#')
if __name__ == '__main__':
num_list = ['1', '2', '3', '4', '5', '6']
root = TreeNode()
root = root.create_tree(num_list, 0)
root.visit_tree()
print是用来辅助判断的(有点弱智,请见谅)