假设有一个二叉树 结构如下 我们 要求层次打印 输出结果为 a, b, c, d, e, f。那么该如何实现呢?这要借助一个栈结构来实现
代码实现
class TreeNode(object):
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def invert_tree(root):
if not root:
return None
invert_tree(root.left)
invert_tree(root.right)
root.left, root.right = root.right, root.left
return root
def print_tree(root):
node_stack = [root]
while node_stack:
head = node_stack[0]
if head.left:
node_stack.append(head.left)
if head.right:
node_stack.append(head.right)
print head.value
del node_stack[0]
test_root = TreeNode('a')
test_root.left = TreeNode('b')
test_root.right = TreeNode('c')
test_root.left.left = TreeNode('d')
test_root.left.right = TreeNode('e')
test_root.right.right = TreeNode('f')
print_tree(test_root)