class Solution:
def sortedArrayToBST(self , num ):
# write code here
# 中序遍历转层序遍历
# 平衡指的是任意节点的子树高度差小于等于1
# 只需返回root就行了,不需要参数传递root.
def rebuild(left, right):
if left > right:
return
if left == right:
return TreeNode(num[left])
mid = (left + right + 1) // 2
# 需要看清题意,题意是要把多余的放到左子树,搜易这里需要加1
root = TreeNode(num[mid])
if left <= mid - 1:
root.left = rebuild(left, mid - 1)
if mid+1 <= right:
root.right = rebuild(mid + 1, right)
return root
return rebuild(0, len(num)-1)
升序数组转化为平衡二叉搜索树
最新推荐文章于 2023-06-01 11:49:02 发布