You are on page 1of 2

int i=0,j=0;

if(p[j]=='.'&&p[j+1]=='*')
if(s[i]!=p[j])
{
j++;
}
else

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
struct TreeNode* root={0};
bool bst(struct TreeNode* root, int k)
{
if(root->val==k)
return true;
else if(root->val<k)
{
if(root->right!=NULL)
return(bst(root->right,k));
//else
// return false;
}
else
{
if(root->left!=NULL)
return(bst(root->left,k));
//else
// return false;
}
return false;
}

bool findTarget(struct TreeNode* root1, int k){


bool a;

static int i=0;


int num;
if(i==0)
{
root->val=root1->val;
root->left=root1->left;
root->right=root1->right;

i++;}
if(root->val>=k)
{ if(root->left!=NULL)
root=root->left;
else
return false;
root1->val=root->val;
root1->left=root->left;
root1->right=root->right;
a= findTarget(root,k);
}
else
{
num= k - root->val;
if(root->val!=num)
a=bst(root1,num);
else
a=false;
if(a)
return true;
else
{
if(root->left!=NULL)
a= findTarget(root->left,k);
if(!a && root->right!=NULL)
a= findTarget(root->right,k);
return a;
}

return a;
}

You might also like