108. Convert Sorted Array to Binary Search Tree

来源:互联网 发布:毒性数据库 编辑:程序博客网 时间:2024/05/02 02:28

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


要求高度平衡,那么应该尽量把元素往左右子树平均分配。正好又是有序数组,所以可以把数组分开,中间元素作为根,左边作为左子树,右边右子树。

public TreeNode sortedArrayToBST(int[] nums){int len=nums.length;if(len==0)return null;return build(0, len-1, nums);}private TreeNode build(int start,int end,int[] nums){if(start==end)return new TreeNode(nums[start]);if(start>end)return null;int mid=(start+end)>>1;int num=nums[mid];TreeNode t=new TreeNode(num);t.left=build(start, mid-1, nums);t.right=build(mid+1, end, nums);return t;}


0 0
原创粉丝点击