Untitled
unknown
plain_text
2 years ago
606 B
6
Indexable
void trav(BinaryTreeNode<int>* root,vector<int> &inorder){ //pass by ref
if(root==NULL) return ;
if(root->left) trav(root->left,inorder);
inorder.push_back(root->data);
if(root->right) trav(root->right,inorder);
//return ans;
}
bool twoSumInBST(BinaryTreeNode<int>* root, int target) {
// vector<int> ans;
vector<int> inorder;
trav(root,inorder);
int n=inorder.size();
int i=0,j=n-1;
while(i<j){
if(inorder[i]+inorder[j]==target) return true;
else if(inorder[i]+inorder[j]< target) i++;
else j--;
}
return false;
}Editor is loading...