5/30/2014

23. Convert Sorted Array to Binary Search Tree

/**
 * 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) {
        if (num==null || num.length==0) return null;
        return helper(num, 0, num.length-1);
    }
   
    private TreeNode helper(int[] num, int start, int end) {
        if (start <= end) {
            TreeNode res = new TreeNode(num[(start+end)/2]);
            res.left = helper(num, start, (start+end)/2-1);
            res.right = helper (num, (start+end)/2+1, end);
            return res;
        } else return null;
    }
}

1 条评论:

  1. 1. recursive.
    2. 构建一个树的时候需要root.val, root.left, root.right.

    回复删除