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

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 了。

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

2021-06-02:给定一棵搜索二叉树头节点,转化成首尾相接的有序双向链表。

2021-06-02:给定一棵搜索二叉树头节点,转化成首尾相接的有序双向链表。

将二叉树转为有序的双向链表

Leetcode练习(Python):链表类:第109题:有序链表转换二叉搜索树:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个

二叉树与双向链表的转换

[LeetCode] 109. 有序链表转换二叉搜索树 ☆☆☆(递归)