题目:

  对二叉树的节点来说,有本身的值域,有指向左孩子和右孩子的两个指针;对双向链表的节点来说,有本身的值域,有指向上一个节点和下一个节点的指针。在结构上,两种结构有相似性,现在有一棵搜索二叉树,请将其转换为一个有序的双向链表。最后返回转换后的双向链表的头节点。

基本思路:

  时间复杂度O(N),空间复杂度O(N)。

  使用队列等容器收集二叉树中序遍历的结果,收集完毕后在按照队列中的顺序将每个节点串起来。代码实现如下:

def inOrderToQueue(head,queue):if head == None:return inOrderToQueue(head.left,queue)queue.append(head)inOrderToQueue(head.right,queue)def convert(head):if head == None:return Nonequeue = []inOrderToQueue(head,queue)head = queue.pop(0)head.left = NonenewHead = headwhile queue:node = queue.pop(0)head.right = nodenode.left = headhead = nodehead.right = Nonereturn newHead

将搜索二叉树转换成双向链表相关推荐

  1. 左神算法:将搜索二叉树转换成双向链表(Java版)

    本题来自左神<程序员代码面试指南>"将搜索二叉树转换成双向链表"题目. 题目 对二叉树的节点来说,有本身的值域,有指向左孩子节点和右孩子节点的两个指针:对双向链表的节点 ...

  2. 链表问题15——将搜索二叉树转换成双向链表(方法二)

    题目 题目同上一篇文章,即题目将二叉树按照中序顺序转换成双向链表 思路 方法二:利用递归函数,不使用任何容器.时间复杂度为O(N),额外空间复杂度为O(h),h为二d d d df叉树的高度 首先需要 ...

  3. 链表问题15——将搜索二叉树转换成双向链表

    题目 将一颗搜索二叉树按照中序遍历(左-中-右)的顺序,变成一个有序的双向链表. 所谓的先序遍历.中序遍历和后序遍历都针对的是中间的节点也就是根节点,先序遍历为中-左-右,后序遍历为左-右-中 思路 ...

  4. 将二叉树转换成双向链表

    思路:採用中序遍历的方法,visit函数须要完毕的功能为: 1.当前节点的左子节点指向上一次訪问的节点: 2.将上一次訪问节点的右子节点指向当前节点: 3.最后更新上一次訪问节点为当前节点. 在第二步 ...

  5. 新手学习算法----二叉树(将一个二叉查找树按照中序遍历转换成双向链表)

    题目:将一个二叉查找树按照中序遍历转换成双向链表. 给定一个二叉查找树: 4/ \2 5/ \ 1 3 返回 1<->2<->3<->4<->5. 思路 ...

  6. LintCode 378. 将二叉树转换成双链表(非递归遍历)

    文章目录 1. 题目 2. 解题 1. 题目 将一个二叉树按照中序遍历转换成双向链表. 样例 样例 1: 输入:4/ \2 5/ \1 3 输出: 1<->2<->3<- ...

  7. 二叉树转换成森林amp;森林变成二叉树

    一,树转换成二叉树 1,将全部兄弟结点连起来; 2,保留第一个兄弟结点与父节点的连接,断开其它兄弟结点与父节点的连接,然后以根节点为轴依照顺时针方向旋转45度 二,二叉树转换成森林 方法: 1,将每棵 ...

  8. 二叉树:表达式二叉树转换成中缀式(括弧处理)

    文章目录 问题描述 : 输入说明 : 输出说明 : 输入范例 : 输出范例 : 思路分析 代码实现 事故现场 第一次提交 分析与总结 如果不妥请留言,你的关注和回复是对我最大的鼓励,谢谢!如果想立即回 ...

  9. 如何将图片格式转换成png

    当我们上传图片的时候有时候会发现图片格式有限制,只允许jpg跟png格式,如果我们的格式是这俩之外的要怎么办呢?那么我们就需要将图片格式进行转换,今天我就来给大家分享下利用转换器来转换图片格式的操作方 ...

最新文章

  1. 在SpringMVC中使用Jackson并格式化时间
  2. 探索多媒体开发最新最佳实践(内附资料下载)
  3. 如何在SAP CRM Fiori My Task应用里创建task
  4. python123第五周作业答案_马哥2016全新Linux+Python高端运维班第五周作业
  5. php用户名登录名_PHP验证登录用户名和密码
  6. 补习系列(21)-SpringBoot初始化之7招式
  7. 朋友圈9宫格留白_九宫格招聘拼图图片
  8. win10下wifi链接成功,qq可以登录,浏览器无法上网的问题处理
  9. linux下mysql单机主从配置,Linux下MySQL互为主从配置
  10. c语言获取Windows缓存,【图片】【C语言】【Windows】--IE缓存提取器【erbi_lucifer吧】_百度贴吧...
  11. php 小米路由器_小米路由3 原厂固件OPKG安装 nginx+php+mysql 搭建WEB环境 芒果云等...
  12. Ms08067 de 阿青姐姐告诉你为什么要学Python内网开发,不看是你的损失!
  13. oracle 数据库 双机,oracle双机热备份方法
  14. php抓取微信图片,PHP使用CURL采集微信图片(公众号)如何绕过防盗链系统?
  15. WebIM 聊天 Demo
  16. 基于opencv ,实现螺丝松动检测
  17. Python_作图添加水平线和垂直线_linspace语句介绍
  18. tspl 重置打印机命令_命令行添加删除打印机
  19. 实时在线游戏服务器客户端交互总结
  20. EDG的夺冠之路充满荆棘,电子竞技又何尝不是?

热门文章

  1. TDD Tip:方法内部New出来的对象如何Mock
  2. 2016年中国数据安全五大发展趋势
  3. 网站集成PayPal如何设置
  4. 偏方使用不当担心被毁容! - 生活至上,美容至尚!
  5. SVCHOST.exe进程之谜
  6. python用numpy和pil处理图像成灰度图_「火炉炼AI」机器学习047-图像的直方图均衡化操作...
  7. 提取文件出错_提取中文、英文和数字,其实很简单
  8. javaweb过滤器_JavaWeb技术(2):SpringMVC中的Filter
  9. linux中分区乱了,找到了linux分区顺序错乱修复方法
  10. pandas的reindex功能