算法:二叉查找树进阶
算法:二叉查找树进阶
二叉查找树基础—Two Sum IV - Input is a BST
问题描述
给定一个二叉搜索树和一个目标编号,如果BST中存在两个元素,若它们的和等于给定值,则返回true。
Example 1:
Input: 5 / \ 3 6 / \ \ 2 4 7 Target = 9 Output: True
Java代码
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