每次都以中心(偏左)作为root
递归
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
if nums == []:
return None
return self.func(nums,0,len(nums)-1)
def func(self,l,left,right):
if left > right:
return None
mid = left + ((right-left)>>1)
root = TreeNode(l[mid])
#if left < right:
root.left = self.func(l,left,mid-1)
root.right = self.func(l,mid+1,right)
return root