108. Convert Sorted Array to Binary Search Tree

来源:互联网 发布:淘宝账号被盗 支付宝 编辑:程序博客网 时间:2024/06/01 08:46

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

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class TreeNode {          int val;          TreeNode left;          TreeNode right;          TreeNode(int x) { val = x; }}public class Solution {    public TreeNode sortedArrayToBST(int[] num) {        int len = num.length;        if(len<=0) return null;        return sorted(num, 0, len-1);           }    public TreeNode sorted(int[] num, int start, int end){                 if(start>end) return null;        int mid = (start + end) / 2 + (start + end) % 2;        TreeNode root = new TreeNode(num[mid]);        root.left = sorted(num, start, mid-1);        root.right = sorted(num, mid+1, end);        return root;    } }