Convert Sorted Array to Binary Search Tree

 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 generate(num, 0, num.length-1);  
    }
    
    public TreeNode generate(int[] num, int start, int end){
        if(start > end)
            return null;
            
        int mid = (start + end)/2;
        TreeNode root = new TreeNode(num[mid]);
        root.left = generate(num, start, mid -1);
        root.right = generate(num, mid+1, end);
        return root;
    }
}

 

posted @ 2014-02-06 03:50  Razer.Lu  阅读(158)  评论(0编辑  收藏  举报