平衡二叉树----有序双向链表

Posted pengtangtang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了平衡二叉树----有序双向链表相关的知识,希望对你有一定的参考价值。

 1 Node* pre = NULL,*cur = BULL;
 2 Node*  treeToDoubleyList(Node* root){//二叉搜索树中序遍历有序
 3 if(root == NULL)
 4 return NULL;
 5 Node* dummy = new Node;
 6 dummy->right = root;
 7 pre = dummy;
 8 __treeToDoublyList(root);
 9 dummy->right->left = cur;
10 cur->right = dummy->right;
11 return dummy->right;
12 }
13 void __treeDoublyList(Node* root){
14 if(root==NULL)
15 return ;
16 __treeDoublyList(root->left);
17 cur=root;
18 pre->right=cur;
19 cur->left=pre;
20 pre=root;
21 __treeDoublyList(root->right);
22 }

 

 // 创建一个 dummyHead 可以省略头节点相关的边界判断, dummyHead 指向头节点即可
/ dummyHead right 指向 head( 这里使用 left 也可以)
 // 对于 head 节点, head 的前一个节点就是 dummyHead 了。
中序遍历
 // 对于 head 节点, head 的前一个节点就是 dummyHead 了。

以上是关于平衡二叉树----有序双向链表的主要内容,如果未能解决你的问题,请参考以下文章