二叉树遍历选择题技巧

在二叉树中遍历的方式有三种:先序遍历,中序遍历和后序遍历

首先看先序遍历的遍历顺序:根节点->左子树->右子树

中序遍历:左子树->根节点->右子树

后序遍历:左子树->右子树->根节点

从遍历的顺序我们可以发现每一次位置移动的都是根节点,而左右子树的相对顺序是永远不变的,所以从位置移动的结点可以快速找到根节点、左子树的根节点和右子树的根节点。

下面来实际操作一下:

一棵二叉树的先序遍历序列为A、B、C、D、E、F,中序遍历遍历序列为C、B、A、E、D、F,则后序遍历序列为()

解题思路:

      首先给出了先序遍历和中序遍历,那么根据遍历的顺序可以发现只有根节点后移,那么后移的为根节点。从题目中可以发现A、B、D三个节点后移,那么这三个节点分别为根节点。根据先序遍历可以确定A为根节点,那么B为左子树的根节点,D为右子树的根节点。

    然后,由先序遍历到中序遍历被提前的是左子树,那么C为左子树,E为右子树。 

   那么在后序遍历中现对于中序遍历,根节点进一步后移。所以本题的答案为:C、B、E、F、D、A

检验一下:

一棵二叉树的后序遍历序列为D、A、B、E、C,中序遍历序列为D、E、B、A、C,则先序遍历序列为:

分析:后序遍历到中序遍历,提前的节点为根节点,由题目中可以看到E、B两个节点提前了,那么E、B两个节点为根节点,在中序遍历中左子树的根节点相较于根节点靠前。那么B结点为根节点吗?答案是否定的。因为通过后序遍历中我们知道,最后一个节点为根节点,那么可以确定的是C为根节点,C的位置没有发生改变,那么可以确定C之前的节点全为二叉树的做子树。在左子树中B、E分别为根节点。根据左子树的后序遍历可以发现E为左子树的根节点,根据中序遍历E的右子树,D为E的左子树,在中序遍历中B结点在A结点之前,那么A为B的右子树

所以先序遍历应为:C、E、D、B、A

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值