例如
preorder-> 0,1,2
postorder-> 2,1,0
0
/
1
/
2
0
/
1
\
2
0
\
1
/
2
0
\
1
\
2
对于上述情况,这些是可能的4个二叉树。对于任何预订和后序遍历,一般可能有多少树?
答案 0 :(得分:0)
您的问题有两个答案:
对于二进制树的给定后序和前序遍历,您只能找到一棵树。 (注意强调二进制!我只允许根有2级) 在this answer中给出了一个校样草图,您也可以在其中找到重建算法。
如果你的树允许有2级的内部节点,即只有一个孩子的节点,那么你可以把它放在左边或右边,相应的子树位置在前后遍历不会发生变化。因此,如果您有k
个此类节点,则您拥有2^k
个等效树