二叉树(前序、中序、后序遍历图片步骤详解)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42651904/article/details/90288715

首先我们有这么一颗二叉树:
在这里插入图片描述

  • 前序遍历:根结点 —> 左子树 —> 右子树(先遍历根节点,然后左右)

这棵树的前序遍历为:ABDEGHCF

  • 中序遍历:左子树—> 根结点 —> 右子树(在中间遍历根节点)

这棵树的前序遍历为:DBGEHACF

  • 后序遍历:左子树 —> 右子树 —> 根结点(最后遍历根节点)

这棵树的前序遍历为:DGHEBFCA

  • 层次遍历:按层次遍历

这棵树的前序遍历为:ABCDEFGH

ps: 所谓的前序、中序、后续,就是对根节点而言的,左右的遍历顺序不变,前序就是根节点最先遍历,然后左右;中序就是把根节点放在中间遍历;后序则是把根节点放在最后遍历。


  • 笔试题:已知二叉树前序遍历为:ABDEGHCF,中序遍历为:DBGEHACF,求后序遍历

分析:

  1. 首先我们由前序遍历可知根节点为A
  2. 已知根节点为A,由中序遍历可知左子树为DBGEH,右子树为CF

确定这两点后就很容易推算出原来的二叉树的样子了。
我们看到右子树节点为CF,中序遍历也是CF,那么就可以推断出现在的二叉树右边是这个样子:
在这里插入图片描述
为什么F不是左子树呢,因为如果F在左边,中序遍历的顺序就变成FC了

由前序遍历AB可以知,A的左子树肯定是B,那么现在的树就是这样的:
在这里插入图片描述
再由中序遍历DB可知,D为B的左子树
在这里插入图片描述

现在只剩下EGH没确定了
首先我们要确定的是D肯定没有子树,如果有,中序遍历就不会是DB了
由前序遍历可知E节点只能是B的右子树了
在这里插入图片描述
,最后由中序遍历GEH可知完整的二叉树为:
在这里插入图片描述

推断出整棵树后其他的遍历就都很容易写出来了。

这种题的关键是确定根节点和左右子树。如果是已知后序遍历,也是一样的最后一个就是根节点。

猜你喜欢

转载自blog.csdn.net/qq_42651904/article/details/90288715