leetcode hot100 将有序数组转化为二叉搜索树

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

已解答

简单

相关标签

相关企业

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 

平衡

 二叉搜索树。

# Definition for a binary tree node.

# class TreeNode(object):

#     def __init__(self, val=0, left=None, right=None):

#         self.val = val

#         self.left = left

#         self.right = right

class Solution(object):

    def sortedArrayToBST(self, nums):

        """

        :type nums: List[int]

        :rtype: Optional[TreeNode]

        """

        if nums==[]:

            return None

        l = len(nums)

        # if l==1:

        #     return TreeNode(nums[0])

        mid = l/2

        mid_node = TreeNode(nums[mid])

        # print(nums[:mid])

        # print(nums[mid:])

        mid_node.left = self.sortedArrayToBST(nums[:mid])

        mid_node.right = self.sortedArrayToBST(nums[mid+1:])

        return mid_node

迭代进行,每次拿出中间那个,这样左右子树最多相差就是1个节点,不会有问题

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值