1.在中序遍历中找到树根,将其分为左右两个子树。pre[0]==in[i]
2.由树根构建左右子树,构建树的方法相同。采用递归做同样的事情,结束条件左或右树为空。

注:新的数组 = Arrays.copyOfRange(复制的数组,从这开始,这里结束)。
我的回答:
import java.util.Arrays;
public class Solution {
public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
if(pre.length==0||in.length==0) return null;
TreeNode root = new TreeNode(pre[0]);
for(int i = 0;i<in.length;i++)
{
if(pre[0]==in[i])
{
root.left = reConstructBinaryTree(Arrays.copyOfRange(pre,1,i+1),Arrays.copyOfRange(in,0,i));
root.right = reConstructBinaryTree(Arrays.copyOfRange(pre,i+1,pre.length),Arrays.copyOfRange(in,i+1,in.length));
break;
}
}
return root;
}
}