//can be improved by having a function to join 2 DLLs
struct node *tree2DLL(struct node * pRoot)
{
if (!pRoot) return NULL;
struct node *pleftDLL = tree2DLL(pRoot->left);
struct node *pRightDLL = tree2DLL(pRoot->right);
//now join left with root
pLeftDLL->left->right = pRoot;
pRoot->left = pleftDLL->left;
pRoot->right= pLeftDLL;
pLeftDLL->left = pRoot;
//now join pLeftDLL and pRightDLL;
struct node* pTemp = pRightDLL->left;
pLeftDLL->left->right = pRightDLL;
pRightDLL->left = pLeftDLL->left;
pTemp->right = pLeftDLL;
pLeftDLL->left = pTemp;
return pLeftDLL;
}
Best Regards
Ashish Goel
"Think positive and find fuel in failure"
+919985813081
+919966006652
On Thu, May 24, 2012 at 11:20 PM, rahul r. srivastava <
[email protected]> wrote:
> hey people....
>
> can anyone explain the logic and solution(in simple words) behind the
> classical problem of converting binary tree to circular doubly linked list
> in inorder fashion.....
>
> stanford language seems to be way above my head....
> http://cslibrary.stanford.edu/109/TreeListRecursion.html
>
> thnx...
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/algogeeks/-/IyQsfiqEmdUJ.
> 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.