题目描述
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
这题思路和我们平时根据前序遍历以及中序遍历来构建二叉树的思路是一样的,利用递归来实现整个过程,首先对于这两个数组,都设立两个指针,指向起始以及终止位,根据前序遍历找出根节点,再根据中序遍历中根节点的位置,将元素分为左右子树,再对左右子树递归实现相同的运算,递归的终止条件就是指针不再满足要求。需要注意的是递归条件中指针的位置,根据例子就能推算出这些条件的值了,不是很难。