[leetcode-653-Two Sum IV - Input is a BST]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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]的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 653. Two Sum IV - Input is a BST
leetcode 653. Two Sum IV - Input is a BST
[Leetcode]653.Two Sum IV - Input is a BST
LeetCode 653. Two Sum IV - Input is a BST(在BST中寻找两个节点,使它们的和为一个给定值)