Python二叉树层次打印

来源:互联网 发布:金域名人国际酒店ktv 编辑:程序博客网 时间:2024/05/22 01:31

           假设有一个二叉树 结构如下 我们 要求层次打印 输出结果为 a, b, c, d, e, f。那么该如何实现呢?这要借助一个栈结构来实现



代码实现

class TreeNode(object):    def __init__(self, value):        self.value = value        self.left = None        self.right = Nonedef 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 rootdef 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)


0 0