Leetcode 108: Convert Sorted Array to Binary Search Tree

https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/

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

 

Code

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def sortedArrayToBST(self, nums):
        """
        :type nums: List[int]
        :rtype: TreeNode
        """
        self.nums = nums
        return self.helper(0, len(nums))
    
    def helper(self, start, end):
        if end <= start:
            return None
        
        mid = start + (end-start)/2
        root = TreeNode(self.nums[mid])
        root.left = self.helper(start, mid)        
        root.right = self.helper(mid+1, end)
        return root

 

Idea

The same idea to https://czxttkl.com/?p=1366 but easier because you have full view of the whole list.

Leave a comment

Your email address will not be published. Required fields are marked *