二叉树遍历方法

原创 2015年07月10日 15:53:39

二叉树遍历:

先序遍历:

先序遍历也叫做先根遍历前序遍历,可记做根左右(二叉树父结点向下先左后右)。
首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树,如果二叉树为空则返回。

例如,所示二叉树的遍历结果是:ABDECF

中序遍历

中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游,可记做左根右。
中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树。即:
二叉树为空则结束返回
否则:
(1)中序遍历左子树。
(2)访问根结点。
(3)中序遍历右子树。
中序遍历中序遍历
注意的是:遍历左右子树时仍然采用中序遍历方法。
如右图所示二叉树
中序遍历结果:DBEAFC
中序遍历的时间复杂度为:O(n)。
如果一棵二叉排序树的节点值是数值,中序遍历的结果为升序排列的数组。可以利用该性质检测一棵树是否为二叉排序数。
已知前序遍历和后序遍历,不能确定唯一的中序遍历。

后序遍历

后序遍历(LRD)是二叉树遍历的一种,也叫做后根遍历、后序周游,可记做左右根。后序遍历有递归算法和非递归算法两种。
后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后遍历根结点。即:
二叉树为空则结束返回,
否则:
(1)后序遍历左子树
(2)后序遍历右子树(3)访问根结点
如右图所示二叉树
后序遍历结果:DEBFCA
已知前序遍历和中序遍历,就能确定后序遍历。

总结

三种遍历方法分别简记:根左右、左跟右、左右根。(左右不变,根从第一个位置开始变动)

题目:



解决思路:首先先序遍历以F开始,则ABDCE在整个树左边,GH在整个树右边
二叉树为:

答案为:A


题目二:

答: 后序序列为gdbehfca

过程是首先还原二叉树,再求出后序遍历序列,过程如下:

首先从前序第一个得到根,回到中序来将其分割为左子树dgb、根a、右子树echf

再分别按照左右子树的结点回到各自的前序来再次求出左右子树的根,依然是回到刚才已经切分出左右子树的中序序列来分割

重复这个过程,就可以还原出二叉树了

问题的二叉树如下:




二叉树的四种遍历方式

1、前序遍历 前序遍历即先遍历完左子树,再访问父节点,最后遍历完右子树public class T1 { static class Node { int val; ...
  • gu_solo
  • gu_solo
  • 2016年09月14日 12:32
  • 1069

关于二叉树的几种遍历方法

先说说二叉树的存储结构,跟很多其它模型一样,也有顺序和链式两种方式。前者虽然使用简单,但是存在浪费空间的问题,举个例子,下图的二叉树,用顺序的方式存储(0表示空,没有子树)是: 二叉树就是每个结点最...
  • pony_maggie
  • pony_maggie
  • 2014年08月05日 20:57
  • 192015

神级遍历二叉树的方法(Morris算法)上

在前面的文章中我们介绍了关于二叉树的三种遍历方式的递归和非递归的形式!时间复杂度为O(n)O(n),空间复杂度也为O(h)O(h)(h为树的高度),对于每个节点我们都要访问一遍,所以时间复杂度是没有办...
  • woshinannan741
  • woshinannan741
  • 2016年10月17日 18:18
  • 1080

二叉树三种遍历六种实现

二叉树三种遍历六种实现
  • hbjhappy
  • hbjhappy
  • 2015年09月05日 20:53
  • 1249

二叉树的三种遍历图解

二叉树的三种基本遍历顺序:
  • wj8987922
  • wj8987922
  • 2016年08月17日 07:02
  • 1844

看懂二叉树的三种遍历

二叉树的遍历分为以下三种: 先序遍历:遍历顺序规则为【根左右】 中序遍历:遍历顺序规则为【左根右】 后序遍历:遍历顺序规则为【左右根】 什么是【根左右】?就是先遍历根,再遍历左孩子,最后遍历右...
  • soundwave_
  • soundwave_
  • 2016年11月10日 21:08
  • 14554

二叉树的各种遍历算法以及实例

一、二叉树 在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构。二叉树是每个节点最多有两个子树的有序树。通常子树被称作“左子树”(left...
  • shufac
  • shufac
  • 2014年05月25日 23:36
  • 19393

数据结构学习心得——二叉树的三种遍历算法

二叉树主要的遍历方式有四种,先序遍历,中序遍历,后序遍历和层次遍历(层次遍历放到下一篇博客单独讲)。 1、先序遍历 a.访问根结点 b.先序遍历左子树 c.后序遍历右子树2、中序遍历 a.先...
  • u012350430
  • u012350430
  • 2017年09月29日 12:21
  • 620

二叉树遍历解析

1 / \ 2 3 / \ / \ 4 5 6 ...
  • u014805066
  • u014805066
  • 2016年01月30日 13:58
  • 438

【华为练习题】二叉树遍历

【华为练习题】二叉树遍历题目二叉树遍历 描述: 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其...
  • sps900608
  • sps900608
  • 2016年09月13日 23:28
  • 615
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉树遍历方法
举报原因:
原因补充:

(最多只允许输入30个字)