已知一棵二叉树的前序遍历以及中序遍历顺序,求这棵树的后序遍历

参考:
【数据结构】遍历二叉树


题目

已知一棵二叉树的前序遍历顺序是ABCDEF,中序遍历顺序是CBAEDF,请问这棵树的后序遍历是什么?

题解

三种遍历都是从根结点开始,前序遍历是先打印再递归左和右,所有前序遍历序列为ABCDEF,第一个字母A就是根结点;再由中序遍历序列CBAEDF,可以知道C和B是A的左子树上的结点,E、D、F是A的右子树上的结点,我们可以得到以下这样的图:
在这里插入图片描述

然后再看前序序列中的C和B,先B再C,所以B应该是A的左孩子,C就只能说B的孩子了,至于C是B的左还是右孩子,再看中序序列CBAEDF,C在B之前打印,说明C是B的左孩子,如图:
在这里插入图片描述
再看前序中的E、D、F,他们的顺序是ABCDEF,意味着D是A的右孩子,E和F是D的子孙(注意,他们中有一个不一定是孩子,还可能是孙子)。再看中序序列是CBAEDF,E在D的左侧,F在右侧,所以E是D的左孩子,F是D的右孩子,如图:
在这里插入图片描述

为了避免推导失误,我们最好自己再按此树推导一遍前序和中序遍历序列。根据二叉树结构图,轻松得到后序遍历为CBEFDA。

总结

这里我们可以得到两个二叉树遍历的性质:

  • 已知前序遍历序列和中序遍历序列,可以唯一确定一棵二叉树;
  • 已知后序遍历序列和中序遍历序列,可以唯一确定一棵二叉树;

注意:已知前序和后序遍历,是不能确定一棵二叉树的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吮指原味张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值