对于这个问题,是有唯一解的。
对于先根遍历,根结点之后肯定是左子树的根(如果存在左子树的话)或者右子树的根(如果没有左子树)。本题中,G后为F,则在后根遍历序列中,左子树的根肯定是最后一个遍历的,找到F,则在后根遍历序列中,F左边m个是左子树的结点集合,右侧n个(除去根G)是右子树。那么在先根序列中,G后m个为左子树,最后n个为右子树。最后针对左右子树,分别递归应用以上规则,就把整棵棵树恢复了
需要注意一点的是,如果先根序列的第二个与后根序列的倒数第二个相同,说明该二叉树没有左子树或者没有右子树,所以无法唯一确定该树。
G
F B
K C H
D E J
I A