二叉搜索树转换成一个排序的双向链表
来源:互联网 发布:three.js 全景图切换 编辑:程序博客网 时间:2024/06/09 18:42
题目:
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
class Solution {
public:
//Paragrm 当前的根节点,已经处理好的双向链表的尾部节点
//传引用和传值的区别
//周五 2017-7-2
//中序遍历
void convertNode(TreeNode *pRootOfTree,TreeNode *&lastNode)
{
if(pRootOfTree==NULL) return ;
if(pRootOfTree->left)
convertNode(pRootOfTree->left,lastNode);
//当前节点的前驱指向已经处理好的双向链表的尾
pRootOfTree->left=lastNode;
if(lastNode)
lastNode->right=pRootOfTree;
lastNode=pRootOfTree;
if(pRootOfTree->right)
convertNode(pRootOfTree->right,lastNode);
}
TreeNode* Convert(TreeNode* pRootOfTree)
{
//2017-6-27 周二
/*二差搜索树
1,左子树节点的值小于根节点
2 右子树的节点的值大于根节点
3 没有键值值相等的节点
4 左右子树也是二叉查找树
*/
//
//思路:
//用于保存处理过程中的双向链表的尾节点
TreeNode *lastNode=NULL;
convertNode(pRootOfTree,lastNode);
//找到双向链表的头结点
TreeNode *pHead=lastNode;
while(pHead&&pHead->left)
pHead=pHead->left;
return pHead;
}
};
- 【二叉树】将二叉搜索树转换成一个排序的双向链表
- 二叉树--将二叉搜索树转换成一个排序的双向链表
- 输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表
- 牛客网-二叉搜索树转换成一个排序的双向链表
- 剑指offer27---将二叉搜索树转换成一个排序的双向链表
- 二叉搜索树转换成一个排序的双向链表
- 【面试题】剑指offer27--将一颗二叉搜索树转换成一个排序的双向链表
- 将二叉搜索树转换成一个排序的双向链表
- 将二叉搜索树转换成一个排序的双向链表
- day17之将二叉搜索树转换成一个排序的双向链表
- 将二叉搜索树转换成一个排序的双向链表
- 剑指offer面试题-二叉搜索树转换成一个排序的双向链表
- 将二叉搜索树转换成一个排序的双向链表
- 将二叉搜索树转换成一个排序的双向链表
- 将二叉搜索树转换成一个排序的双向链表
- 数据结构:将二叉搜索树转换成一个排序的双向链表
- 第1题:把二叉搜索树转换为一个排序的双向链表
- 将二叉搜索树转换成一个排序双向链表
- 产业物联网如何实现价值?
- okhttp 2.x 用法/封装
- 4.开放封闭原则
- 微信小程序编辑器bug:wx.showToast下image无法识别同名图片文件的更改
- Kotlin-27.区间/范围(Ranges)
- 二叉搜索树转换成一个排序的双向链表
- swoole源码学习——协程的概念,yield协程和原生协程的实现(上)
- Vmware vRealize Autostation 蓝图简介
- 使用jQuery实现Ajax
- 5.依赖倒转原则
- 快速排序的三种实现方式以及非递归版本
- 个人学习总结的部分java小知识与面试题(三)
- Develop Universal Robot (UR) in ROS: From Install to Demo
- python virtualenv activate文件分析