1、 暴力递归,由于有序,每次取中间数为节点
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
def helper(left,right):
# 递归结束条件
if left>right:
return None
# 取中间数为节点
mid = (left+right)//2
root = TreeNode(nums[mid])
# 左节点
root.left = helper(left,mid-1)
# 右节点
root.right = helper(mid+1,right)
return root
return helper(0,len(nums)-1)