108.将有序数组转化为二叉搜索树
因为数组有序,取数组中间值,然后递归树的左值和右值即可。
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
int n = nums.length;
if(nums ==null || n == 0){
return null;
}
return buildTree(nums, 0, n-1);
}
public TreeNode buildTree(int[] nums, int left, int right){
if(left > right) return null;
if(left == right) return new TreeNode(nums[left]);
int mid = (left+right)/2;
TreeNode root = new TreeNode(nums[mid]);
root.left = buildTree(nums, left, mid-1);
root.right = buildTree(nums, mid+1, right);
return root;
}
}