应用题-二叉树专题-将有序数组转换为二叉搜索树
```python
# 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]:
if not nums or len( nums ) == 0: return None
# 平衡二叉搜索树
# 保证建树的时候 根节点选择中间节点 保证左右子树节点数量分布均匀
def build( nums, start, end ):
# 区间取值 [ start, end )
if start >= end: return None
mid = start + ( end - start ) // 2
r = TreeNode( nums[ mid ] )
r.left = build( nums, start, mid )
r.right = build( nums, mid + 1, end )
return r
return build( nums, 0, len( nums ) )
```