# 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]: print(nums) if len(nums) == 0: return None mid = len(nums) // 2 # if mid == 0 : return TreeNode(nums[mid], None, None) node = TreeNode(nums[mid], None, None) if mid != 0: left_nums = nums[:mid] node.left = self.sortedArrayToBST(left_nums) if mid + 1 < len(nums): right_nums = nums[mid + 1: ] node.right = self.sortedArrayToBST(right_nums) return node