0%

leetcode-653.两数之和IV-输入BST

给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。

题目

题目

题目原文链接 https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst/

题目分析

首先,题目提到了一个概念——二叉搜索树,不熟悉的同学可以直接点击链接去了解一下。其实我们这里用不到二叉搜索树的特性,只需要深度优先遍历整棵树,然后将遍历的值都记录到哈希表里,每次遍历的时候,当前节点为x,查找 k - x 的差值存不存在即可。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var findTarget = function(root, k) {
const set = new Set();
const helper = (root, k) => {
if (!root) {
return false;
}
if (set.has(k - root.val)) {
return true;
}
set.add(root.val);
return helper(root.left, k) || helper(root.right, k);
}
return helper(root, k);
};