应用题-二叉树专题-将有序数组转换为二叉搜索树

管理员
```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 ) ) ```
评论 0

发表评论 取消回复

Shift+Enter 换行  ·  Enter 发送
还没有评论,来发表第一条吧