首页 > 试题广场 >

已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,

[单选题]
已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为
  • CFHGEBDA
  • CDFEGHBA
  • FGHCDEBA
  • CFHGEDBA


添加了例子:
特性A,对于前序遍历,第一个肯定是根节点;
特性B,对于后序遍历,最后一个肯定是根节点;
特性C,利用前序或后序遍历,确定根节点,在中序遍历中,根节点的两边就可以分出左子树和右子树;
特性D,对左子树和右子树分别做前面3点的分析和拆分,相当于做递归,我们就可以重建出完整的二叉树;
我们以一个例子做一下这个过程,假设:
前序遍历的顺序是: ADCEFGHB
中序遍历的顺序是: CDFEGHAB


第一步,我们根据特性A,可以得知根节点是A,然后,根据特性C,我们知道左子树是:CDFEGH,右子树是:B。
                      A
                      /     \
               CDFEGH   B
第二步,取出左子树,左子树的前序遍历是:DCEFGH,中序遍历是: CDFEGH,根据特性A和C,得出左子树的父节点是A,并且A没有右子树。
                         A
                      /     \
                    D      B
                 /    \
            C       FEGH

第三步,使用同样的方法,......
参考::https://www.cnblogs.com/xiaokang01/p/9806971.html

发表于 2020-12-11 10:58:39 回复(2)