平衡二叉树----有序双向链表
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题:有序链表转换二叉搜索树:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个