108. Convert Sorted Array to Binary Search Tree——tree

108. Convert Sorted Array to Binary Search Tree——tree

题目分析:二叉树的高度差不能超过1

class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution(object):
    def sortedArrayToBST(self, nums):
        def dfs(start, end):
            if start > end:
                return None
            middle = start+(end-start)//2
            root = TreeNode(nums[middle])
            root.left = dfs(start, middle-1)
            root.right = dfs(middle+1, end)
            return root
        if not nums:
            return None
        return dfs(0, len(nums)-1)