您的位置:首页 > 其它

Leetcode653. Two Sum IV - Input is a BST

2017-08-09 23:54 363 查看
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

直接将BST中序遍历放进了数组里,然后首尾匹配。

package leetcode;

import java.util.ArrayList;
import java.util.List;

/**
* Created by linjian on 17/8/9.
*/
public class Leetcode653 {
List<Integer> list = new ArrayList<>();
public boolean findTarget(TreeNode root, int k) {
in(list,root);
int i=0;
int j =list.size()-1;
while (i<j){
int tmp = list.get(i)+list.get(j);
if (tmp==k) return true;
if (tmp<k) i++;
else j++;
}
return false;
}
public static void in(List<Integer> list,TreeNode root){
if (root==null) return ;
in(list,root.left);
list.add(root.val);
in(list,root.right);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode