输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。

首先如果要构建一棵树我们是否要找到树的根节点然后找到左子树、右子树,然后再从左、右子树分别找到根节点,再分为左右子树,一直重复这个行为直到没有元素为止,这就是分治的思想,将大的问题分为小的相同的问题。再总结一下前序遍历和中序遍历的特点,在前序遍历中根节点肯定是排在树(完整序列)的首位或者子树(子序列)的首位,而中序遍历根节点肯定是排在树(完整序列)的中间或者子树(子序列)的中间,这样得出前序遍历可以方便为我们找到根节点,而中序遍历方便为我们找到左、右子树,然后再从左子树,右子树中继续上述操作,我们就递归构建出一颗树了。