题目分析:二叉树的高度差不能超过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)