//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 <
rahul.ranjan...@gmail.com> 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 algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> 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 algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to