import recover import tree if __name__ == "__main__": sol = recover.Solution() root = tree.construct_tree([4, 2, 6, 1, 5, 3, 7]) root.traverse_breath_first() sol.recover(root) root.traverse_breath_first()
from tree import TreeNode, construct_tree import verticalOrder if __name__ == "__main__": root = construct_tree([3,9,8,4,0,1,7,'#','#','#',2,5]) root.traverse_breath_first() sol = verticalOrder.Solution() print sol.verticalOrder(root)
def find_target(nums, target): l, r = 0, len(nums) - 1 while l < r: tmp = nums[l] + nums[r] if tmp == target: return True elif tmp < target: l += 1 else: r -= 1 return False if __name__ == '__main__': root = construct_tree() nums = inorder_traversal(root) res = find_target(nums, 9) print(res) """ 一、题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 二、案例 输入: 5 / \ 3 6 / \ \ 2 4 7 Target = 9 输出: True(因为存在 2 + 7 = 9)
if root is None: return root in_order(root.left) res.append(root.val) in_order(root.right) return res def make_tree(): """ 1 \ 2 / 3 """ root = TreeNode(1) root.right = TreeNode(2) root.right.left = TreeNode(3) return root if __name__ == '__main__': from tree import construct_tree tree = construct_tree() # tree = make_tree() # print(in_order(tree)) print(in_order_traversal2(tree))
from tree import TreeNode, construct_tree if __name__ == "__main__": root = construct_tree( [1, 2, 6, 3, 4, '#', '#', 7, 8, 5, '#', '#', '#', 9, '#', 10]) print root root.traverse_pre_order() root.traverse_breath_first()