题目描述

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。

/*
struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}
};*/
class Solution {
public:TreeNode* Convert(TreeNode* pRootOfTree){TreeNode* pLastNodeInList=NULL;ConvertNode(pRootOfTree,&pLastNodeInList);TreeNode* pHeadOfList=pLastNodeInList;while(pHeadOfList!=NULL&&pHeadOfList->left!=NULL)pHeadOfList=pHeadOfList->left;return pHeadOfList;}void ConvertNode(TreeNode* pRootOfTree,TreeNode* *pLastNodeInList){if(pRootOfTree==NULL)return;TreeNode* pCurrent=pRootOfTree;if(pCurrent->left!=NULL)ConvertNode(pCurrent->left,pLastNodeInList);pCurrent->left=*pLastNodeInList;if(*pLastNodeInList!=NULL)(*pLastNodeInList)->right=pCurrent;*pLastNodeInList=pCurrent;if(pCurrent->right!=NULL)ConvertNode(pCurrent->right,pLastNodeInList);}
};

剑指offer面试题[27]-二叉搜索树与双向链表相关推荐

  1. 剑指Offer - 面试题36. 二叉搜索树与双向链表(中序循环/递归)

    1. 题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 特别地,我们希望可以就地完成转换操作.当转化完成以后,树中节点的左指 ...

  2. 剑指offer面试题36. 二叉搜索树与双向链表(中序遍历)(递归)

    题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 思路 详见链接 代码 #class Node: # def __ini ...

  3. 剑指Offer - 面试题33. 二叉搜索树的后序遍历序列(递归)

    1. 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 参考以下这颗二叉搜索树:5/ \2 6 ...

  4. 剑指Offer - 面试题54. 二叉搜索树的第k大节点(二叉树循环遍历)

    1. 题目 给定一棵二叉搜索树,请找出其中第k大的节点. 示例 1: 输入: root = [3,1,4,null,2], k = 13/ \1 4\2 输出: 4示例 2: 输入: root = [ ...

  5. 剑指offer面试题54. 二叉搜索树的第k大节点(逆中序遍历)

    题目描述 给定一棵二叉搜索树,请找出其中第k大的节点. 思路 详见链接 代码 class Solution:def kthLargest(self, root:TreeNode, k:int)-> ...

  6. 剑指offer面试题33. 二叉搜索树的后序遍历序列(二叉树)(递归)

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 思路 详见链接 代码 class Sol ...

  7. 《剑指Offer》36:二叉搜索树与双向链表

    题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向.比如,输入下图中的二叉搜索树,输出转换之后的排序双向链表. 二叉树节点的定义如下 ...

  8. 剑指offer(C++)-JZ36:二叉搜索树与双向链表(数据结构-树)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.如下图所示 数据范围:输 ...

  9. 剑指offer(牛客)---26.二叉搜索树与双向链表

    题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. /** public class TreeNode {int val = ...

最新文章

  1. php对提交数据的验证
  2. 如何修改git已提交记录的邮箱?
  3. 18个有趣的API供你的前端开发测试之用
  4. python的read函数_Python Pandas pandas.read_sql函数方法的使用
  5. 小甲鱼 OllyDbg 教程系列 (九) :Delphi 程序逆向特点
  6. Source Insight 教程
  7. MongoDB分布式集群分片
  8. 网络摄像头转usb接口_Arduino + USB Host Sheild 实现USB鼠标转PS/2接口
  9. 《2021爱分析·中国RPA应用趋势报告》正式发布
  10. 常用的数据分析方法(聚类、因子、相关、对应、回归、方差)简述【转】
  11. 计算机在中医方剂中的应用,利用网络技术实现计算机中医疾病及处方检索的应用方法专利_专利查询 - 天眼查...
  12. 2.10 分块矩阵求逆
  13. [luogu7147] [THUPC2021 初赛]麻将模拟器 - 大模拟 - dp
  14. python解释器中help的用法
  15. opencv 图像拼接和图像融合技术
  16. 假设有一段英文,其中有单词中间的字母i误写为I,请编写程序进行矫正。
  17. MATLAB数字信号处理(2)LFM脉冲雷达回波处理仿真
  18. 详细介绍js函数中的arguments
  19. c语言考试的说说带图片致自己,高中生超励志的正能量短语说说带图片致自己...
  20. CodeGear RAD Studio 2007下载

热门文章

  1. 一个服务器启动2套mysql_一个服务器启动两个mysql实例
  2. python批处理代码_Python文件夹批处理操作代码实例
  3. python uiautomation_使用python UIAutomation从QQ2017(v8.9)群界面获取所有群成员详细资料,...
  4. 输出空格隔开换行_VB编程(六)数据输出 Print 及相关方法
  5. easyui前端实现多选框_在实际案例中学习前端开发(第二期)
  6. mysql删除一个月前数据_如何在数据库中始终保持一个月的数据,自动删除一个月之前的记录?...
  7. android对象识别实验报告,Android 3相册实验报告.doc
  8. 步进电机的加速时间是怎么样的?
  9. C++ Struct和Union区别
  10. 容器云平台在传统企业落地的一些思考和探索