首页 > 其他 > 详细

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

时间:2020-05-30 16:18:46      阅读:38      评论:0      收藏:0      [点我收藏+]
 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 了。

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

原文:https://www.cnblogs.com/pengtangtang/p/12992764.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!