import java.util.*; public class Solution { public TreeNode sortedArrayToBST (int[] arr) { // 预处理 int len = arr.length; if (len == 0) return null; // 获取数组中点下标 int mid = len >> 1; // 创建根结点 TreeNode root = new TreeNode(arr[mid]); // 递归构造左右子树 root.left = sortedArrayToBST(Arrays.copyOfRange(arr, 0, mid)); // 前闭后开 root.right = sortedArrayToBST(Arrays.copyOfRange(arr, mid + 1, len)); // 同上 // 构造完毕,返回结果 return root; } }