二叉树的前中后序遍历

简介: 秋招记录 二叉树的遍历是笔试常见的题目了,记录一下一劳永逸 对一棵二叉树进行遍历,我们可以采取3种顺序进行遍历,分别是前序遍历、中序遍历和后序遍历。这三种方式是以访问父节点的顺序来进行命名的。假设父节点是N,左节点是L,右节点是R,那么对应的访问遍历顺序如下:前序遍历:中左右 N>L>R中序遍历:左中右 L>N>R后序遍历:左右中 L>R>N总结:1.

秋招记录

二叉树的遍历是笔试常见的题目了,记录一下一劳永逸

对一棵二叉树进行遍历,我们可以采取3种顺序进行遍历,分别是前序遍历、中序遍历和后序遍历。
这三种方式是以访问父节点的顺序来进行命名的。
假设父节点是N,左节点是L,右节点是R,那么对应的访问遍历顺序如下:
前序遍历:中左右 N>L>R
中序遍历:左中右 L>N>R
后序遍历:左右中 L>R>N
总结:
1.先左后右是一定的,父节点的位置决定了前中后
2.利用前序遍历可以得到根节点,就是第一个
3.利用后序遍历可以得到根节点,最后一个
4.确认了根节点,利用中序遍历可以得到左子树和右子树
5.对左子树和右子树分别做前面3点的分析和拆分,相当于做递归,我们就可以重建出完整的二叉树

例题:前序遍历的顺序是: CABGHEDF 中序遍历的顺序是: GHBACDEF

第一步:根节点是C 左包括 GHBA 右包括 DEF

image


第二步:把左子树当做一个完整的二叉树再看,A是左子树的根节点,而GHB都在A的左边,同理右子树的根节点是E,左右分别是D和F

image


第三步:根据前两步的经验,对于每个小子树都采用同样的方式,最后得到完整的二叉树:

image

关键:
**记住前中后序所对应的节点遍历顺序!
前中后是指N的位置,左右不变!**

目录
相关文章
|
7月前
二叉树的前序遍历、中序遍历、后序遍历
二叉树的前序遍历、中序遍历、后序遍历
|
7月前
|
存储
什么?二叉树的反前序遍历?
什么?二叉树的反前序遍历?
|
7月前
|
算法
二叉树中序遍历(一)
二叉树中序遍历(一)
|
7月前
|
C++
二叉树的前序遍历(C++)
二叉树的前序遍历(C++)
50 0
二叉树的前序遍历(C++)
|
7月前
二叉树的中序遍历
二叉树的中序遍历
47 0
|
7月前
|
C++
二叉树的后序遍历(C++)
二叉树的后序遍历(C++)
46 0
|
7月前
|
Linux
求二叉树的先序遍历
求二叉树的先序遍历
|
7月前
二叉树的前、中、后序遍历的实现
二叉树的前、中、后序遍历的实现