这种活计刷个题就明白了,不过在刷题之前推荐读者先把二叉树遍历的概念大致浏览一下,请看该博客:二叉树遍历
接下来小二就上热气腾腾的题啦,客官请慢用~
先序+中序---->后序
对某二叉树进行先序遍历的结果是ABDEFC,中序遍历的结果是DBFEAC,则后序遍历的结果是:
解析:
先序:根->左->右、中序:左->根->右,后序:左->右->根。
这种题的思路就是,先找到根,然后找左右子树,以此类推~
Step1:先序遍历肯定是先遍历根节点啦。所以A就是根节点;那么在中序遍历里面,根节点A的左边的就是它的左子树,右边的就是它的右子树
Step2:对DBFE这个左子树进行判断,在先序遍历里面可以看出,B就是该子树的根节点啦,从中序遍历可以看出D是B的左子树,FE是B的右子树
Step3:对FE这个子树进行判断,在先序遍历里面可以看出E是根节点,从中序遍历可以看出F是左子树
Step4:后序遍历就是左、右、根,DFEBCA
小试牛刀:.若某二叉树的先序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()
解析:
Step1
Step2
Step3
Step4 gdbehfca
plus: 其实在写遍历的结果的时候,可以比较优先级,比如说后序遍历,在脑子里一定要切记:左右根,左结点比右节点优先级高,右节点比根节点优先级高。这样就不容易出错了。
后序+中序---->先序
已知中序CBDAEF,后序CDBFEA,先序:
解析:
中序:左->根->右,后序:左->右->根
Step1:从后序遍历可以看出,A一定是根节点,从中序遍历可以看出CBD是左子树,EF是右子树
Step2:从后序遍历可以看出B是左子树的根节点,E是右子树的根节点
Step3:先序遍历为根->左->右,即:ABCDEF
后序+先序---->中序
哈哈哈哈哈,这个没办法得到唯一的啦。不信你看下面的例子。这几个后序,先序都一样,但是中序不同哦~
~~~END~~~