Seawolf 发表于 2019-9-16 13:17:57

leetcode 108. Convert Sorted Array to Binary Search Tree

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: , which represents the following height balanced BST:

      0
   / \
   -3   9
   /   /
-105

/**
* 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);
      node.left = helper(nums,start,mid-1);
      node.right = helper(nums,mid+1,end);
      
      return node;
    }
}
页: [1]
查看完整版本: leetcode 108. Convert Sorted Array to Binary Search Tree