QUESTION:
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
EXPLANATION:
BST有一个特性其实就是如果按照中序遍历的话出来的结果就应该是1234567.。。
所以只要每次都找中点,作为根节点,然后在不断递归,就可以将整个树遍历出来了。
SOLUTION:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if(nums==null || nums.length==0)return null;
return helper(nums,0,nums.length-1);
}
public TreeNode helper(int[] nums,int from,int to){
if(from>to){
return null;
}
int middle = (from+to)/2;
TreeNode t = new TreeNode(nums[middle]);
t.left = helper(nums,from,middle-1);
t.right = helper(nums,middle+1,to);
return t;
}
}