105. 从前序与中序遍历序列构造二叉树
根据一棵树的前序遍历与中序遍历构造二叉树。
注意:
你可以假设树中没有重复的元素。例如,给出
2
3
> 中序遍历 inorder = [9,3,15,20,7]
>
返回如下的二叉树:
2
3
4
5
6
> / \
> 9 20
> / \
> 15 7
>
思路: 重建二叉树的基本思路就是先构造根节点,再构造左子树,接下来构造右子树,其中,构造左子树和右子树是一个子问题,递归处理即可。
因此我们只关心如何构造根节点,以及如何递归构造左子树和右子树。
我们可以利用前序遍历和中序遍历的特性来区分出左右子树的元素,然后递归构造.
PS: 对于区间分治的问题,最好是使用 左闭右闭区间更加方便 .
| 1 | class Solution { |