Convert Sorted Array to Binary Search Tree
用分治法就能很好解决,注意只有一个元素和没有元素的情况即可
class Solution(object):
def sortedArrayToBST(self, nums):
"""
:type nums: List[int]
:rtype: TreeNode
"""
return self.helper(nums, 0, len(nums) - 1)
def helper(self, nums, start, end):
if start > end:
return None
if start == end:
return TreeNode(nums[start])
mid = start + (end - start) / 2
head = TreeNode(nums[mid])
head.left = self.helper(nums, start, mid - 1)
head.right = self.helper(nums, mid + 1, end)
return head