您的位置:首页 > 其它

LeetCode.653 Two Sum IV - Input is a BST

2018-01-25 16:14 435 查看
题目:

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   7

Target = 9

Output: True

Example 2:

Input:
5
/ \
3   6
/ \   \
2   4   7

Target = 28

Output: 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) {
//给定规定二叉树,以及给定目标值,返回是否二叉树中是否存在两个节点的和等于目标值
//思路:利用set存储已经遍历的节点,递归查找
return backtrace(root,new HashSet<>(),k);
}
public boolean backtrace(TreeNode root,Set<Integer> set,int k){
if(root==null) return false;
if(set.contains(k-root.val)){
//说明存在剩余值
return true;
}
set.add(root.val);
return backtrace(root.left,set,k)||backtrace(root.right,set,k);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: