Convert Sorted Array to Binary Search Tree
Total Accepted: 5997 Total Submissions: 18635 My SubmissionsGiven an array where elements are sorted in ascending order, convert it to a height balanced BST.
和上一题差不多,用二分,复杂度O(n)
public static TreeNode sortedArrayToBST(int[] num){
if(num.length == 0) return null;
return sortedArrayToBSTHelper(num, 0, num.length-1);
}
private static TreeNode sortedArrayToBSTHelper(int[] num, int start, int end){
if(start > end) return null;
int mid = (start+end)/2;
TreeNode root = new TreeNode(num[mid]);
root.left = sortedArrayToBSTHelper(num,start, mid-1);
root.right = sortedArrayToBSTHelper(num,mid+1, end);
return root;
}