LeetCode(108) Convert Sorted Array to Binary Search Tree解题报告

来源:互联网 发布:小区平面图制作软件 编辑:程序博客网 时间:2024/06/06 05:31

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

解题思路:
取数组中点mid作为根节点,从start到mid-1作为左子树,mid+1到end作为右子树,递归调用即可。

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public TreeNode sortedArrayToBST(int[] nums) {        if(nums.length == 0)            return null;        return sortArrayToBST(nums,0,nums.length-1);    }    public TreeNode sortArrayToBST(int[] nums,int start,int end){        if(end < start)            return null;        int mid = (start+end)/2;        TreeNode root = new TreeNode(nums[mid]);        root.left = sortArrayToBST(nums,start,mid-1);        root.right = sortArrayToBST(nums,mid+1,end);        return root;    }}
0 0
原创粉丝点击