首先,题目可能有问题,
思路,在先序序列中找根,中序序列中区分左右子树,递归就可以了.
由先序序列ABCDEFG,可知,该树的根为A,由中序DBCAFEG可知,A前面的DBC为该树的左子树,A后面的FEG的其右子树.
继续分析,原序列先序被分为两组,BCD和EFG,中序分别为DBC和FEG,
先序BCD,中序DBC这棵以A为根的树的左子树,其根为B,用上面方法可知,D在B前面,即D是B的左子树,C在B的后面,即为右子树,(此时,先序应该为BDC,和题目冲突,中序应该为CDBAFEG就对了,或者把先序改一下也可以.)同理可得EFG和FEG这棵树的根为E,F和G分别为其左右子树,这样一来,树就形成了.
A
/
B E
/ /
C D F G