来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/opLdQZ 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
给定一个二叉搜索树的 根节点 root 和一个整数 k , 请判断该二叉搜索树中是否存在两个节点它们的值之和等于 k 。假设二叉搜索树中节点的值均唯一。
解答
递归即可,但是需要一个记录表记录之前的值,判断差值是否在记录表中,在的话则返回 true
/*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val = (val===undefined ? 0 : val)* this.left = (left===undefined ? null : left)* this.right = (right===undefined ? null : right)* }*//*** @param {TreeNode} root* @param {number} k* @return {boolean}*/var findTarget = function(root, k) {let isFind = false;function traverse (node, list) {if (!node) return null;traverse(node.left, list);if (list[k - node.val]) {isFind = true;}list[node.val] = true;traverse(node.right, list);}traverse(root, {});return isFind;};
