鱼C论坛

 找回密码
 立即注册
查看: 1799|回复: 0

[技术交流] 【朱迪的LeetCode刷题笔记】108. Convert Sorted Array to Binary Search Tree #Easy

[复制链接]
发表于 2023-6-6 13:29:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree.

Height-Balanced
A height-balanced binary tree is a binary tree in which the depth of the two subtrees of every node never differs by more than one.

Example 1:
Input: nums = [-10,-3,0,5,9]
Output: [0,-3,9,-10,null,5]
Explanation: [0,-10,5,null,-3,null,9] is also accepted:

Example 2:
Input: nums = [1,3]
Output: [3,1]
Explanation: [1,null,3] and [3,1] are both height-balanced BSTs.


Constraints:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums is sorted in a strictly increasing order.

Judy
Python
# 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: TreeNode
        """

        def f(nums):
            l = len(nums)
            if l == 1:
                return TreeNode(val=nums[0])
            elif l == 2:
                return TreeNode(val=nums[1], left=TreeNode(val=nums[0]))
            elif l == 3:
                return TreeNode(val=nums[1], left=TreeNode(val=nums[0]), right=TreeNode(val=nums[2]))
            m = l // 2
            return TreeNode(val=nums[m], left=f(nums[:m]), right=f(nums[m+1:]))
        
        return f(nums)

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 10:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表