首页 > 其他分享 >代码随想录 -- 二叉树 -- 将有序数组转换为二叉搜索树

代码随想录 -- 二叉树 -- 将有序数组转换为二叉搜索树

时间:2024-09-20 10:52:02浏览次数:3  
标签:nums -- self 随想录 mid arrLen 二叉树 数组 root

108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode)

思路:(注意题目要求是平衡二叉树!!!)

递归出口:

当传入数组为空时,返回空。

单层递归逻辑:

找到数组中间的值,令其为root,数组左边为root的左子树,数组右边为root的右子树。

最后返回root。

class Solution(object):
    def sortedArrayToBST(self, nums):
        arrLen=len(nums)
        if arrLen==0:
            return None
        mid=arrLen/2
        root=TreeNode(val=nums[mid])
        root.left=self.sortedArrayToBST(nums[0:mid])
        root.right=self.sortedArrayToBST(nums[mid+1:arrLen])
        return root

标签:nums,--,self,随想录,mid,arrLen,二叉树,数组,root
From: https://blog.csdn.net/weixin_56989647/article/details/142376447

相关文章

  • base64
    importjava.nio.charset.StandardCharsets;importjava.util.Base64;publicclassBase64Example{publicstaticvoidmain(String[]args){StringoriginalString="oa:123456";//使用Base64编码器Base64.Encoderenc......
  • AJAX请求的步骤解析与优化方法
    ajax的请求过程1、新建ajax对象:    IE6不兼容newXMLHttpRequest();    IE6下,ajax对象的兼容方法:        window判断的方法:            varxhr=null;            if(window.XMLHttpRequest){    xhr=newXMLHttpReq......
  • VUE省市区三级联动组件
    :::color5核心搜索<fontstyle="background-color:rgb(250,250,250);">fullCityCode</font>即可:::使用<a-col:span="12"><a-form-model-itemlabel="省市区"prop="fullCityCodeArr">......
  • VS(visual studio) C++ 封装dll,以及其隐式调用与显式调用(静态\动态)
    DLL介绍DLL(动态链接库,DynamicLinkLibrary)是一种可执行文件,它包含可以在其他程序中调用的函数和数据。他是Windows操作系统中的一个重要概念,用于代码共享和模块化。特点代码共享:多个程序可以同时使用同一个DLL文件,而不需要将其代码编译到每个程序中。这样可以节省磁盘空间和......
  • 代码随想录 -- 二叉树 -- 修剪二叉搜索树
     669.修剪二叉搜索树-力扣(LeetCode)思路:递归出口:当root为空时,返回空。当root的值比low小时,如果root没有右子树,直接返回空;否则返回trimBST(root.right,low,high)。当root的值比high大时,如果root没有左子树,直接返回空;否则返回trimBST(root.left,low,high)。单层递归逻辑:......
  • 批处理实现电脑微信多开
    话不多说了,电脑想多开几个微信,拿来做别的用处,直接上批处理脚本了,test.bat,记得把原来的微信给关掉了,然后再点击批处理程序,就可以多开微信了@echooffstart"""C:\ProgramFiles(x86)\TenCEnt\WeChat\WeChat.exe"start"""C:\ProgramFiles(x86)\Tencent\WeChat\WeChat.exe"ex......
  • NOIP 2016 普及组初赛试题及解析(第三部分:阅读程序(1-2))
    ......
  • webpack打包学习
    在大多数JavaScript项目中,build 和 web 文件夹通常用于存放不同类型的文件。 build 文件夹:通常用于存放项目构建后的文件。这些文件是将源代码、资源和依赖打包、编译、压缩后生成的,主要是为了生产环境。 web 文件夹:通常用于存放项目的源代码和资源文件,如HTML、CS......
  • 前端框架vue和react
    vueVue能力的提升是一个综合性的过程,涉及多个方面的学习和实践。以下是一些具体的例子和策略,可以帮助你提升Vue开发能力:1.深入理解Vue的核心概念1.1响应式系统:深入理解Vue的响应式原理,包括数据绑定、依赖追踪和视图更新机制。Vue的响应式系统是其核心,它允许Vue组件响......
  • 互动娱乐行业中的数据飞轮:从智能推荐到用户洞察
    在互动娱乐行业,数据不仅是业务推动的基础,也是创新的关键。如今,数据飞轮的概念已成为推动企业向数据驱动转型的核心策略。本文将探讨如何通过建立有效的数据飞轮,在文娱行业中实现智能推荐和用户行为分析的深度融合,从而提升用户体验和业务增长。数据采集与用户行为深度分析互动娱乐......