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.