Leetcode 653. 两数之和 IV - 输入 BST
题目
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
测试样例
案例 1:
输入:
5
/ \
3 6
/ \ \
2 4 7
Target = 9
输出: True
案例 2:
输入:
5
/ \
3 6
/ \ \
2 4 7
Target = 28
输出: False
题解
哈希表记录出现的值,判断是否存在两数之和等于目标值即可。详细过程见代码
代码
unordered_map<int,int> num;
bool search(TreeNode* root,int k){
if(root == NULL) return false;
if(num[k-root->val]!=0){
return true;
}
num[root->val] = 1;
if(search(root->left,k)) return true;
if(search(root->right,k)) return true;
return false;
}
bool findTarget(TreeNode* root, int k) {
return search(root,k);
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。