#include <iostream>
#include <vector>
#include <queue>
#include <string>
#include <map>
using namespace Std;
struct node
{
int Val;
node * left,*right;
Node (int _val): Val (_val), left (null), right (null) {}
};
void Convertnode (node* root,node *& lastlistnode)
{
if (root==null) return;
if (root->left)
Convertnode (Root->left,lastlistnode);
root->left=lastlistnode;
if (Lastlistnode) lastlistnode->right=root;
Lastlistnode=root;
if (root->right)
Convertnode (Root->right,lastlistnode);
}
node* Convert (node * root)
{
node* Plistnode=null;
Convertnode (Root,plistnode);
while (Plistnode->left)
plistnode=plistnode->left;
return plistnode;
}
int main ()
{
Node N1, N2 (6), N3 (+), N4 (4), N5 (8), N6 (n), N7 (16);
n1.left=&n2;
n1.right=&n3;
n2.left=&n4;
n2.right=&n5;
n3.left=&n6;
n3.right=&n7;
Node * Ans=convert (&N1);
while (ANS)
{
cout<<ans->val<< "";
ans=ans->right;
}
return 0;
}
"Abbaabba"
Binary search tree transforms into doubly linked list