LeetCode 653 两数之和 IV

题意

给定一个二叉搜索树和一个目标结果,如果 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, {})
};
发布了346 篇原创文章 · 获赞 330 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43870742/article/details/103673056
今日推荐