推导遍历结果
这类题目经常出来考察对二叉树遍历的掌握程度。比如,已知一课二叉树的前序遍历序列为ABCDEF,中序遍历为CBAEDF,问这课二叉树后序遍历结果是多少?
解题思路:三种遍历都是从根结点开始的,前序遍历是先打印再递归左和右。A)所以前序遍历序列为ABCDEF,第一个字母是A,则A必定是根结点。中序遍历序列是CBAEDF,可以知道C和B是A的左子树的结点,E、D、F是A的右子树的结点。B)然后看前序中的C和B,它的顺序是ABCDEF,先B后C,所以B是A左孩子,C是B的孩子,不过还不能确定是左还是右。再看中序遍历,C在B前面,所以C是B的左孩子。C)接着就是排列右子树了,前序中是DEF,所以D是A的右孩子,EF是D的子孙,注意,它们有一个不一定是孩子,还有可能是孙子。再来看中序序列是EDF,E是D的左孩子,F是D的右孩子。D)到这里就可以画出这棵树了,后序遍历的结果也就水到渠成。
数据结构基础之推导遍历结果
最新推荐文章于 2022-04-21 20:53:08 发布