English
653. Two Sum IV - Input is a BST
Problem Statement:
Given the root
of a Binary Search Tree and a target number k
, return true
if there exist two elements in the BST such that their sum is equal to the given target.
Example 1:
Input: root = [5,3,6,2,4,null,7], k = 9
Output: true
Example 2:
Input: root = [5,3,6,2,4,null,7], k = 28
Output: false
Constraints:
- The number of nodes in the tree is in the range [1, 104].
- -104 <= Node.val <= 104
- root is guaranteed to be a valid binary search tree.
- -105 <= k <= 105
Solution:
java
public class TwoSumIV {
public boolean findTarget(TreeNode root, int sum) {
HashSet<Integer> set = new HashSet<>();
return findTarget(root, sum, set);
}
private boolean findTarget(TreeNode root, int sum, HashSet<Integer> set) {
if (root == null)
return false;
if (findTarget(root.left, sum, set) == true)
return true;
if (set.contains(sum - root.val))
return true;
else
set.add(root.val);
return findTarget(root.right, sum, set);
}
}
...