Skip to content

Latest commit

 

History

History
39 lines (31 loc) · 1.03 KB

108.Convert-Sorted-Array-to-Binary-Search-Tree.md

File metadata and controls

39 lines (31 loc) · 1.03 KB

108. Convert Sorted Array to Binary Search Tree

Difficulty: Easy

URL

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

Solution

Approach 1: Recursion

The code is shown below:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]:
        if not nums:
            return None
        def buildTree(nums, start, end):
            if start > end:
                return None
            elif start == end:
                return TreeNode(nums[start])
            else:
                mid = (start + end) // 2
                cur_node = TreeNode(nums[mid])
                cur_node.left = buildTree(nums, start, mid-1)
                cur_node.right = buildTree(nums, mid+1, end)
                return  cur_node
            
        return buildTree(nums, 0, len(nums)-1)