二叉树整理(五)
来源:互联网 发布:宋慧乔长相 知乎 编辑:程序博客网 时间:2024/06/05 08:07
1、由前序遍历序列和中序遍历序列重建二叉树
二叉树前序遍历序列中,第一个元素总是树的根节点的值。中序遍历序列中,左子树的节点的值位于根节点的值的左边,右子树的节点的值位
于根节点的值的右边。
递归解法:
(1)如果前序遍历为空或中序遍历为空或节点个数小于等于0,返回NULL。
(2)创建根节点。前序遍历的第一个数据就是根节点的数据,在中序遍历中找到根节点的位置,可分别得知左子树和右子树的前序和中序遍
历序列,重建左右子树。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
同样,有中序遍历序列和后序遍历序列,类似的方法可重建二叉树,但前序遍历序列和后序遍历序列不同恢复一棵二叉树,证明略。
2、判断二叉树是不是完全二叉树
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全
二叉树。
有如下算法,按层次(从上到下,从左到右)遍历二叉树,当遇到一个节点的左子树为空时,则该节点右子树必须为空,且后面遍历的节点左
右子树都必须为空,否则不是完全二叉树。
0 0
- 二叉树整理(五)
- 二叉树整理(二)
- 二叉树整理(三)
- 二叉树整理(四)
- 二叉查找树(五)
- python(五)二叉树
- java 二叉树(五)查找二叉树中的节点
- 二叉树题目整理(一)
- 算法整理-二叉树
- 二叉树常见问题整理
- 二叉树题目整理
- 二叉树算法整理
- 数据结构(五)之二叉查找树
- 面试算法(五)重建二叉树
- 数据结构 五:二叉树(Binary Tree)
- Java与数据结构(五) 二叉树
- 五:二叉树输出
- 实验五 二叉树
- JDK-Proxy示例
- jQuery学习笔记
- 码农成长记——css初识
- 1.关键字的秘密
- Hadoop分布式集群搭建(VMware workstation11+centOS7)
- 二叉树整理(五)
- JavaScript基本数据类型与运算符归纳总结
- IP地址分类
- 移动开发的瀑布开发模型
- CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
- Android05
- 两个链表的第一个公共节点
- RTMP基础学习
- Linux静态库和动态库区别