由后序序列和先序序列得到二叉树

1.题意

学过数据结构的都知道,由后序序列和先序序列可以得到二叉树,但是得不到唯一的二叉树。但是如何使用后序和先序得到一棵二叉树呢?这是一个比较有意思的话题。

2.分析

2.1 前提知识

  • 后序序列​​postOrder​​:遍历的顺序是LRD,分别代表左子树,右子树,根,意思就是对于一棵树,始终是先输出左子树的部分,再输出右子树的部分,再输出根。这对于树的任何一个子树都是成立的。
  • 先序序列​​preOrder​​:遍历顺序是DLR,分别代表根,左子树,右子树。分析同上。

2.2 如何构造?

见下图:

由后序序列和先序序列得到二叉树_后序

3.代码

这里不提供代码,有兴趣的话,可以看一道pat题,并参看我的题解。【待更新】