108. Convert Sorted Array to Binary Search Tree

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

---

 

/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public TreeNode sortedArrayToBST(int[] num) {
        
        return helper(num, 0, num.length-1);
        
    }
    
    
    private TreeNode helper(int[] num, int l, int r){
        
        if(l < 0 || r > num.length || l > r)    return null;
        
        int mid = l + (r-l)/2;
        int val = num[mid];
        TreeNode node = new TreeNode(val);
        
        node.left = helper(num, l, mid-1);
        node.right = helper(num, mid+1, r);
        
        return node;     
    }
}

 

posted @ 2013-09-23 02:53  LEDYC  阅读(121)  评论(0)    收藏  举报