添加链接描述
# 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]) -> Optional[TreeNode]:def arraytobst(left,right):if left>right:return Noneif left==right:return TreeNode(nums[left],None,None)else:mid=(left+right)//2root=TreeNode(nums[mid])root.left=arraytobst(left,mid-1)root.right=arraytobst(mid+1,right)return rootreturn arraytobst(0,len(nums)-1)
思路:
- 递归构造
- 踢出的条件
if left>right:
是为了root.left=arraytobst(left,mid-1)
这一句 if left==right:
是为了当只有一个节点时,直接返回