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;
}
}

京公网安备 11010502036488号