Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
solution:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
static int[] array;
public TreeNode sortedArrayToBST(int[] nums) {
array = nums;
return help(0, nums.length-1);
}
private TreeNode help(int s, int e) {
if(e < s) return null;
if(s == e) return new TreeNode(array[s]);
TreeNode rt = new TreeNode(array[(s+e)/2]);
rt.left = help(s,(s+e)/2 -1);
rt.right = help((s+e)/2 + 1,e);
return rt;
}
}