题目
因为题目是需要求取高度平衡的二叉搜索树,因此需要考虑列表的有序性解决该问题。
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
return sortedArrayToBSTDg(nums, 0, nums.length - 1);
}
private TreeNode sortedArrayToBSTDg(int[] nums, int i, int j) {
if (i > j) {
return null;
}
if (i == j) {
return new TreeNode(nums[i]);
}
int mid = i + (j - i)/2;
TreeNode cur = new TreeNode(nums[mid]);
cur.left = sortedArrayToBSTDg(nums, i, mid - 1);
cur.right = sortedArrayToBSTDg(nums, mid + 1, j);
return cur;
}
}