题意
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
案例 1:
输入:
5
/ \
3 6
/ \ \
2 4 7
Target = 9
输出: True
案例 2:
输入:
5
/ \
3 6
/ \ \
2 4 7
Target = 28
输出: False
Js
建立一个用于递归的辅助函数:
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @param {number} k
* @return {boolean}
*/
var findTarget = function(root, k) {
var help = (root, k, hash) => {
if (root === null) {
return false
}
let rest = k-root.val
if (hash.hasOwnProperty(rest)) {
return true
} else {
hash[root.val] = true
}
return help(root.left, k, hash) || help(root.right, k, hash)
}
return help(root, k, {})
};