首页 > 代码库 > 已知先序后序构造二叉树

已知先序后序构造二叉树

已知二叉树先序后序的基础上,可以构造出不唯一的二叉树集。主要思路如下:

先序遍历中刚遍历到的下一个节点是后序遍历中最后遍历的节点,所以可以将后序遍历拆分成两个子序列,从而进行递归构造。

例如 先序遍历为aebdc,后序遍历为bcdea。

首先可以确定根节点为a,在后序中找先序的下一个节点(也就是e),将原序列拆分成两部分,其左子树包含的元素有bcde,右子树为空。

接着在bcd中寻找先序中e的后一个元素即b的位置,将这个子序列又拆分成了b和cd两部分。如此递归下去就能得到一种可能的二叉树。

已知先序后序构造二叉树