美文网首页
108-将有序数组转换为二叉搜索树

108-将有序数组转换为二叉搜索树

作者: ShowMeCoding | 来源:发表于2021-10-06 21:58 被阅读0次
108-将有序数组转换为二叉搜索树

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:

# 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]) -> TreeNode:
        def helper(left, right):
            # 递归的终止条件
            if left > right:
                return None
            # 总是选择中间位置左边的数字作为根节点
            mid = (left + right) // 2
            root = TreeNode(nums[mid])
            root.left = helper(left, mid - 1)
            root.right = helper(mid + 1, right)
            return root
        return helper(0, len(nums) - 1)

相关文章

网友评论

      本文标题:108-将有序数组转换为二叉搜索树

      本文链接:https://www.haomeiwen.com/subject/fpgonltx.html