算法:二叉查找树进阶
算法:二叉查找树进阶
二叉查找树基础—Two Sum IV - Input is a BST
问题描述
给定一个二叉搜索树和一个目标编号,如果BST中存在两个元素,若它们的和等于给定值,则返回true。
Example 1:
Input:
5
/ \
3 6
/ \ \
2 4 7
Target = 9
Output: TrueJava代码
class Solution {
ArrayList<Integer> ints = null;
public boolean findTarget(TreeNode root, int k) {
ints = new ArrayList<>();
preTraverse(root);
int i =ints.size()-1;
int j = 0;
<strong>//在排序好的列表中找到两个和为目标值的序号
while (j<i)
{
int sum = ints.get(i)+ints.get(j);
if(sum==k)
return true;
if(sum<k)
j++;
else
i--;
}
return false;
}
</strong> //中序遍历,可以将二叉树从小到达排列出来!
public void preTraverse(TreeNode T)
{
if(T!=null)
{
preTraverse(T.left);
ints.add(T.val);
preTraverse(T.right);
}
}
}解题思考
我
相关推荐
shenwenjie 2020-06-04
lickylin 2020-04-22
Wofficre 2020-02-14
yawei 2020-06-12
ipqtjmqj 2020-01-18
ustbfym 2019-12-29
逍遥斩舞 2019-12-27
vivenwan 2019-12-23
darlingtangli 2019-06-28
lickylin 2019-06-28
郭岚 2019-06-28
dushine00 2019-06-20
rainsnowing 2017-04-12
Annihilation 2018-12-11
wangxiaohua 2017-03-15
BDplanDante 2017-01-21
pyphrb 2018-02-08
明明蠢萌的夏木君 2014-06-08
数据库成长之路 2019-04-18