思路:採用中序遍历的方法,visit函数须要完毕的功能为:

1、当前节点的左子节点指向上一次訪问的节点;

2、将上一次訪问节点的右子节点指向当前节点;

3、最后更新上一次訪问节点为当前节点。

在第二步时须要推断上一次訪问节点是不是为NULL,假设是,则第二步改为链表的头结点指向当前节点。

程序例如以下:

struct BSTnode
{int data;BSTnode * left;BSTnode * right;
}*pList,*pHead;void visit(BSTnode * pCurrent)
{pCurrent->left = pList;//*当前节点的左子节点指向上一次訪问的节点;*//if (pList != NULL)pList->right = pCurrent;//将上一次訪问节点的右子节点指向当前节点//else pHead = pCurrent;pList = pCurrent;
}void inorder(BSTnode* root)
{if (root != NULL){inorder(root->left);visit(root);inorder(root->right);}
}

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

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

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

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

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

  3. 将搜索二叉树转换成双向链表

    题目: 对二叉树的节点来说,有本身的值域,有指向左孩子和右孩子的两个指针:对双向链表的节点来说,有本身的值域,有指向上一个节点和下一个节点的指针.在结构上,两种结构有相似性,现在有一棵搜索二叉树,请将 ...

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

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

  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. Lintcode -378. 将二叉查找树转换成双链表

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

最新文章

  1. EOS 智能合约源代码解读 (3)asset.hpp
  2. ABAP-获取用户的组织结构权限
  3. python定义匿名函数关键字_python语言的匿名函数、7种可调用对象以及用户定义的可调用类型...
  4. [转载] Python3 数组
  5. Python数据可视化的10种技能
  6. Tween Animation----Translate位置移动动画
  7. java 两数之差_1_两数之和(java)
  8. react---之下拉菜单默认选中的值始终不变的问题
  9. LayaAir 快捷键设置与资源命名规则
  10. JAVA 基础语法(二)——基本数据类型转换以及运算符
  11. opencv算法精解 c++/python
  12. linux串口工具 kermit,Linux下串口工具kermit的安装使用攻略
  13. 最近瞎忙,比较懒撒,所以要收收心,该学习的学习。
  14. c语言既是素数又是回文数的三位数,编写程序,找出所有既是素数又是回文数的三位正整数.例如:131等...
  15. glGenTextures(GLsizei n, GLuint *textures)函数说明
  16. 安装SeisMix计算跨密度混合面
  17. 1_ARM Cortex-M处理器简介
  18. Dispatcher has no subscribers for channel排坑指南
  19. 200行纯C++代码构建一个捕鱼游戏「源码已打包」
  20. python dwg文件_Python将dwg文件转换为shapefi

热门文章

  1. DataGrip快捷键(执行SQL、格式化SQL)
  2. 公众号回复单个图文消息
  3. Proxmark3 Easy Gui 4.0 5.0 5.1加强版免费获取啦最新编译2019/5/10
  4. 【幽默】工作搞不好的原因
  5. VB将自定义资源中的文件释放出来
  6. 英语总结系列(二十二):Baby偶遇GCT
  7. 国内NLP领域单轮融资新纪录,达观数据获1.6亿元B轮投资
  8. 资深程序员的书单 - 转载自@Axb
  9. 宏碁推智能佛珠,修养心性也可数据化
  10. 业界 | 成为CTO之前,我希望有人告诉我这些