653. Two Sum IV

来源:互联网 发布:手机mac地址可以修改吗 编辑:程序博客网 时间:2024/05/19 19:13

Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.

Example 1:

Input:     5   / \  3   6 / \   \2   4   7Target = 9Output: True

Example 2:

Input:     5   / \  3   6 / \   \2   4   7Target = 28Output: False
/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public boolean findTarget(TreeNode root, int k) {        return find(root, new HashSet<>(), k);    }    public boolean find(TreeNode root, HashSet<Integer> mem, int k){        if (root == null) return false;        if (mem.contains(k - root.val)) return true;        mem.add(root.val);        return find(root.left, mem, k) || find(root.right, mem, k);    }}