#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]