Exemple #1
0
#use bfs indices to manipulate nodes
from binarytree import Node

root = Node(1)
root.left = Node(4)
root.right = Node(7)
root.left.right = Node(8)
root.right.left = Node(9)
root.right.right = Node(6)
print "tree: "
print(root)

print "with indices "
root.pprint(index=True, delimiter=',')

idx = 2
print "node/subtree at index ", idx, root[idx]
print "changing node val at ", idx
root[idx] = Node(20)
root.pprint(index=True, delimiter=',')

idx = 4
print "changing subtree at ", idx
root[idx] = Node(40, left=Node(12), right=Node(80))
root.pprint(index=True, delimiter=',')

idx = 1
print "delete at ", idx
del root[1]
root.pprint(index=True, delimiter=',')
            result = TreeNode(t1.value + t2.value)
            result.left = self.mergeTrees(t1.left, t2.left)
            result.right = self.mergeTrees(t1.right, t2.right)
            return result
        else:
            return t1 or t2


#测试用例
if __name__ == '__main__':
    # example 1:
    tree1 = [1, 3, 2, 5]
    tree2 = [2, 1, 3, None, 4, None, 7]
    my_tree1 = build(tree1)
    my_tree2 = build(tree2)
    TreeNode.pprint(my_tree1)
    TreeNode.pprint(my_tree2)
    TreeNode.pprint(Solution().mergeTrees(my_tree1, my_tree2))

    # tree2 为空:
    tree1 = [1, 3, 2, 5]
    tree2 = []
    my_tree1 = build(tree1)
    my_tree2 = build(tree2)
    TreeNode.pprint(my_tree1)
    TreeNode.pprint(my_tree2)
    TreeNode.pprint(Solution().mergeTrees(my_tree1, my_tree2))

    # tree1和tree2 深度不同:
    tree1 = [1, 3, 2, 5]
    tree2 = [1, 2, 4, 3, 2, 1, 6, 9, 12]