5行代码,超过99.77%,用简单的理解,写出巧妙的递归

public TreeNode reConstructBinaryTree(int[] preorder, int[] inorder) {
    if (preorder==null || preorder.length==0) return null;
    int index = getIndexOfInorder(preorder[0],inorder);
    TreeNode root = new TreeNode(preorder[0]);
    root.left = reConstructBinaryTree(Arrays.copyOfRange(preorder,1,index+1),Arrays.copyOfRange(inorder,0,index));
    root.right = reConstructBinaryTree(Arrays.copyOfRange(preorder,index+1,preorder.length),Arrays.copyOfRange(inorder,index+1,inorder.length));
    return root;
}

}