首页 > 代码库 > [leetcode-653-Two Sum IV - Input is a BST]
[leetcode-653-Two Sum IV - Input is a BST]
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
思路:
中序遍历二叉树,将节点值保存在数组里面。然后用从头和尾部遍历刚刚得到的有序数组。
void middle( TreeNode* root, vector< int >& a ) { if( root == NULL ) return; middle( root->left, a ); a.push_back( root->val ); middle( root->right, a ); } bool findTarget(TreeNode* root, int k) { vector< int > a; middle( root, a ); int n = a.size(); for( int i = 0, j = n-1; i < j; ) { if( a[i] + a[j] < k ) i++; else if( a[i] + a[j] > k ) j--; else return true; } return false; }
[leetcode-653-Two Sum IV - Input is a BST]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。