BST树转换为有序双向循环链表
来源:互联网 发布:苹果电脑图片设计软件 编辑:程序博客网 时间:2024/05/17 23:08
思路
- 以中序遍历遍历一棵二叉树的时候,每遍历到一个结点,修改该结点的left指针指向前一个遍历到的结点,修改前一个遍历结点的right指针,指向当前结点。
- 每次递归调用的时候,更新当前遍历结点的right指针让其指向头结点head,同时更新头结点head的left指针让其指向当前遍历结点。
代码
void treeToDoubleList(Node p,Node prev,Node head){ if(p == null) return; treeToDoubleList(p.left,prev,head); //当前节点指向前一个节点 p.left = prev; if(prev != null) prev.right = p;//前一个节点的right指针指向当前节点 else head = p;//前面没有节点则当前节点为head.(最小的节点) head.left = p; p.right = head; prev = p; treeToDoubleList(p.right,prev,head);}Node treeToDoubleList(Node root){ Node prev = null; Node head = null; treeToDoubleList(root,prev,head); return head;}
阅读全文
0 0
- BST树转换为有序双向循环链表
- 将BST转换为有序的双向链表!
- 剑指offer面试题27BST转换为有序双向链表
- 有序链表转换为平衡二叉树(BST)
- 把BST转换为双向链表
- 平衡二叉搜索树BST转换为双向链表
- 二叉查找树转换为有序双向链表
- 二叉搜索树转换为有序双向链表
- 二叉搜索树转换为有序双向链表
- 二叉搜索树转换为有序双向链表
- 二叉查找树转换为有序双向链表---微软
- 二叉搜索树转换为有序双向链表
- 二叉搜索树转换为有序双向链表
- 双向有序循环链表
- 二叉搜索树转换成有序的双向循环链表(一)
- 有序数组转换为平衡二叉树(BST)
- 微软100题 第一题(查找树转换为有序双向链表)
- 给出一颗二叉搜索树,将它转换为有序的双向链表输出
- 关于Quartz任务不准时执行问题
- LeetCode-Regular Expression Matching
- 隐私政策
- 数据类型 数据类型转换 运算符
- WOJ1106-String's Puzzle
- BST树转换为有序双向循环链表
- 表达式求值基本构架
- BOM和DOM详解
- 1064: 加密字符
- OpenCV2编程手册笔记之 2.4迭代器遍历图像
- Cocos Creator 教程索引
- Qt+ffmpeg仿格式工厂:编程中遇到的问题(四)
- 字符格式化
- matlab2c使用c++实现matlab函数系列教程-deconv函数