653. Two Sum IV - Input is a BST (M)
Input: root = [5,3,6,2,4,null,7], k = 9
Output: trueInput: root = [5,3,6,2,4,null,7], k = 28
Output: falseSolution:
Last updated
Input: root = [5,3,6,2,4,null,7], k = 9
Output: trueInput: root = [5,3,6,2,4,null,7], k = 28
Output: falseLast updated
Set<Integer> hashset = new HashSet<>();
public boolean findTarget(TreeNode root, int k) {
if (root == null) {
return false;
}
if (hashset.contains(k - root.val)) {
return true;
}
hashset.add(root.val);
return findTarget(root.left, k) || findTarget(root.right, k);
} public boolean findTarget(TreeNode root, int k) {
List<Integer> nums = new ArrayList<>();
inorder(root, nums);
for(int i = 0, j = nums.size()-1; i<j;){
if(nums.get(i) + nums.get(j) == k)return true;
if(nums.get(i) + nums.get(j) < k)i++;
else j--;
}
return false;
}
public void inorder(TreeNode root, List<Integer> nums){
if(root == null)return;
inorder(root.left, nums);
nums.add(root.val);
inorder(root.right, nums);
}