|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
- For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
- Example:
- Given the sorted array: [-10,-3,0,5,9],
- One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:
- 0
- / \
- -3 9
- / /
- -10 5
复制代码
- /**
- * Definition for a binary tree node.
- * public class TreeNode {
- * int val;
- * TreeNode left;
- * TreeNode right;
- * TreeNode(int x) { val = x; }
- * }
- */
- class Solution {
- public TreeNode sortedArrayToBST(int[] nums) {
- if(nums.length == 0) return null;
- int start = 0;
- int end = nums.length - 1;
- TreeNode node = helper(nums,start,end);
- return node;
-
- }
-
- public TreeNode helper(int[] nums, int start, int end){
- if(start > end) return null;
- int mid = (start + end)/2;
- TreeNode node = new TreeNode(nums[mid]);
- node.left = helper(nums,start,mid-1);
- node.right = helper(nums,mid+1,end);
-
- return node;
- }
- }
复制代码 |
|