108. 将有序数组转换为二叉搜索树

import java.util.*;


 class TreeNode {
     int val;
     TreeNode left;
     TreeNode right;
     TreeNode(int x) { val = x; }
 }

class Solution {

    public TreeNode sortedArrayToBST(int[] nums) {
        return build(nums, 0, nums.length - 1);
    }


    private TreeNode build(int[] nums, int l, int r) {
        if (l > r) {
            return null;
        }

        int m  = (l + r) >>> 1;
        TreeNode root = new TreeNode(nums[m]);

        root.left = build(nums, l, m - 1);
        root.right = build(nums, m + 1, r);

        return root;
    }
}