void correctBST(struct node *root)
{
int flag =0;
static struct node *temp1, *temp2, *temp3, *prev;
static int found;
if(found) return;
if(root) {
correctBST(root->left);
if(!temp1 && prev && root->data < prev->data) {
temp1 = prev;
temp2 = root;
swap(&(temp1->data), &(temp2->data));
flag = 1;
prev = temp1;
}
else if(!temp3 && prev && root->data < prev->data) {
temp3 = root;
swap(&(temp1->data), &(temp2->data));
swap(&(temp1->data), &(temp3->data));
found = 1;
return;
}
if(!flag)
prev = root;
correctBST(root->right);
}
}
On Sun, Sep 2, 2012 at 4:02 PM, Rahul Kumar Patle <[email protected]
> wrote:
> help to solve the following..
> Question: Two of the nodes of a BST are swapped. Correct the BST (taken
> from GeekforGeeks <http://www.geeksforgeeks.org/archives/23272> 2nd
> online test 3rd question)
>
>
>
> --
> Thanks and Regards:
> Rahul Kumar
> Patle<http://www.linkedin.com/profile/view?id=106245716&trk=tab_pro>
> M.Tech, School of Information Technology
> Indian Institute of Technology, Kharagpur-721302,
> India<http://www.iitkgp.ac.in/>
> Mobile No: +91-8798049298, +91-9424738542
> Alternate Email: [email protected]
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.