思路:
递归
二叉树有4种遍历方式:先根,中根,后根,层序。这个顺序值得是一个树分为根,左子树,右子树。
层序不能递归遍历。
先根和中根重建二叉树的思路,pre[0]为根节点,in中的元素通过pre[0]分为两部分,分别是左子树和右子树。

import java.util.*;
public class Solution {
    public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
        if(pre.length<=0){//pre和in相同长度
            return null;
        }
        TreeNode head=new TreeNode(pre[0]);
        int index=0;
        while(index<in.length && in[index]!=pre[0]){
            index++;
        }
        head.left=reConstructBinaryTree(Arrays.copyOfRange(pre,1,index+1),
                                        Arrays.copyOfRange(in,0,index));             //左子树
        head.right=reConstructBinaryTree(Arrays.copyOfRange(pre,index+1,pre.length),
                                         Arrays.copyOfRange(in,index+1,in.length));  //右子树
        return head;
    }
}