diff --git a/653. Two Sum IV - Input is a BST.py b/653. Two Sum IV - Input is a BST.py new file mode 100644 index 0000000..884a6b7 --- /dev/null +++ b/653. Two Sum IV - Input is a BST.py @@ -0,0 +1,55 @@ +# Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target. + +# Example 1: +# Input: +# 5 +# / \ +# 3 6 +# / \ \ +# 2 4 7 + +# Target = 9 + +# Output: True +# Example 2: +# Input: +# 5 +# / \ +# 3 6 +# / \ \ +# 2 4 7 + +# Target = 28 + +# Output: False + +# Definition for a binary tree node. +# class TreeNode(object): +# def __init__(self, x): +# self.val = x +# self.left = None +# self.right = None +# Simple BFS levle-order +class Solution(object): + def findTarget(self, root, k): + """ + :type root: TreeNode + :type k: int + :rtype: bool + """ + if not root: + return False + queue = [root] + s = set() + while queue: + node = queue.pop(0) + # two sum thought + if k - node.val in s: + return True + s.add(node.val) + if node.left: + queue.append(node.left) + if node.right: + queue.append(node.right) + return False + \ No newline at end of file