当前位置: 首页 > article >正文

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个节点,不会有问题

       


http://www.kler.cn/a/452501.html

相关文章:

  • 【GeekBand】C++设计模式笔记15_Proxy_代理模式
  • 全国硕士研究生入学考试(考研)常识详解之初试科目:政治、外语、数学与专业课
  • 勤云远程稿件处理系统 SQL注入漏洞复现(XVE-2024-18393)
  • adb无法连接到安卓设备【解决方案】报错:adb server version (40) doesn‘t match this client (41);
  • ES已死,文本检索永生
  • 前端常用算法集合
  • 微服务: 06-rabbitmq设置延时队列,场景与使用(springboot)
  • 图神经网络_图嵌入_SDNE
  • 【Rust自学】6.4. 简单的控制流-if let
  • 【每日学点鸿蒙知识】指纹识别隐藏背面、数组内部值变化刷新UI、键盘输入类型、跨组件路由、C++20特性支持
  • 智谱BigModel研习社|搭建 AI 搜索引擎 - 使用免费的Web-Search-Pro+脑图Agent智能体
  • Gmsh有限元网格剖分(Python)---点、直线、平面的移动
  • STL 六大组件
  • 私域电商逆袭密码:AI 智能名片小程序与商城系统如何梦幻联动
  • 数据结构--堆的向上调整和向下调整
  • excel中如何筛选一列中重复的内容,相同的内容只保留一次
  • 2、C#基于.net framework的应用开发实战编程 - 设计(二、三) - 编程手把手系列文章...
  • Golang的发展历程
  • MFC/C++学习系列之简单记录11——树控件的使用
  • Java中以某字符串开头且忽略大小写字母如何实现【正则表达式(Regex)】
  • 工厂常用软件系统大全中英文全称对照表及功能介绍应用场景ERP MES WMS SCADA IOT SAP等软件系统介绍
  • 【从零开始入门unity游戏开发之——C#篇29】C#泛型(T)和 泛型约束
  • 前端Python应用指南(三)Django vs Flask:哪种框架适合构建你的下一个Web应用?
  • 在 CentOS 8 系统上安装 Jenkins 的全过程
  • uniapp 项目基础搭建(vue2)
  • Python PDF转换工具箱(PDF转图片,word,拆分,删除,提取)