653. Two Sum IV - Input is a BST

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public boolean findTarget(TreeNode root, int k) {
Set<Integer> set = new HashSet<>();
return dfs(root, set, k);
}

private boolean dfs(TreeNode root, Set<Integer> set, int k) {
if (root == null) {
return false;
}
if (set.contains(k - root.val)) {
return true;
}

set.add(root.val);
return dfs(root.left, set, k) || dfs(root.right, set, k);
}
}

References

653. Two Sum IV - Input is a BST
剑指 Offer II 056. 二叉搜索树中两个节点之和