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

【IC】Redhawk-SC输入件配置 Redhawk sc 阅读详情

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。

本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

示例:

给定有序数组: [-10,-3,0,5,9],

一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:

      0
     / \
   -3   9
   /   /
 -10  5


解法(递归):

思路: 有点像排序算法,二分法。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
            if(nums.length ==0 || nums ==null){
            return null;
        }
        return getTree(nums,0,nums.length-1);  
    }
    
    public TreeNode getTree(int[] nums,int left,int right) {
        if(left <=right){
            int mid = (left+right)/2;
            TreeNode root = new TreeNode(nums[mid]);
            root.left = getTree(nums,left,mid-1);
            root.right = getTree(nums,mid+1,right);
            return root;
        }else{
            return null;
        }
    }
}
手机拍照也能玩高光谱?教你用TensorFlow Lite在Android上实现实时RGB转高光谱 本文介绍了如何利用TensorFlow Lite在Android设备上实现实时RGB到高光谱的图像重构技术。通过深度学习模型优化和移动端部署策略,使智能手机具备专业级光谱分析能力,适用于农业检测、化妆品分析等多个领域。 阅读详情

相关推荐

开题报告该怎么写

考研即将来临,而一般很多大学都会选择在考研结束之后开始安排选题和开题报考(考研之前一般都不谈,老师也很人性化的,不愿意耽误你的复习) 但无论怎么推迟,我们最终都需要去面对并完成这些任务。 现在我就要教大家该如何写一个完整的开题报告! 准备模板。不同的学校有不同的格式,一般情况你的导师会给你们一个学校的标准格式,这个不用太费心。有了模板我们就可以按照模板的“线索”一步一步填充完成即可! 一般大致格式可谓: 研究背景/论文的目的、背景和意义 我们需要写明选择该题目的...

wuyueweifeng的博客 1097

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

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 pu...

程序袁小黑 1927

攻防世界 misc题GFSJ1129-【您看我还有机会吗?】

我们发现了隐藏内容,一开始我以为那个英文就是flag,提交后发现不对,然后我想只有一张图片然后图片上的隐写内容又不是flag,那必定还有什么文件被隐藏了,于是我们打开VMware并启动Ubuntu,使用binwalk分析一下有没有隐藏文件,我们要在Terminal中分析,如下。我们发现里面有一个flag.txt文件,我们尝试提取里面内容,但发现又要密码,我们想起了之前图片上的隐藏内容,我们将那段英文输入(包括空格和符号,在VMware中输入密码不会有显示,你看到的就像没输入一样),然后我们看到如下。

大数据专业,关注 AI 安全与数学建模。记录 Web 安全、对抗攻击、隐私保护等安全实践,以及从经典模型到智能方法的建模思考。用数学思维理解 AI,用 AI 方法反哺安全与建模。 1099

LeetCode(力扣)题目中二叉树的如何生成?根据给定顺序列表生成二叉树(python)

在刷 leetcode 二叉树相关的题目时,经常有这样给定的例子,例如: 检查平衡性 实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 。 示例 2: 给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \

baoxin1100的博客 4373

Python 逆向解析知乎盐选反爬字体,实现内容精准还原

本文详细解析了知乎盐选内容的反爬字体机制,并提供了使用Python逆向解析WOFF字体文件的完整方案。通过fontTools库构建解码字典,实现乱码文本的精准还原,帮助开发者应对动态字体策略,同时强调法律与道德风险。

weixin_29268385的博客 1298

国内免魔法接入Grok API,打造智能QQ机器人实战指南

大型语言模型(LLM)通过API接口为开发者提供了强大的自然语言处理能力,其核心原理是基于海量数据训练的深度神经网络,能够理解和生成类人文本。这一技术价值在于显著降低了AI应用开发门槛,使开发者无需从零训练模型即可快速集成智能对话、内容生成等功能。在即时通讯、智能客服、自动化工具等应用场景中,LLM API能有效提升交互体验与效率。本文聚焦于如何通过稳定的第三方API服务,绕开网络访问限制,将xAI推出的Grok模型接入国内网络环境,并结合NoneBot2框架与go-cqhttp,实现一个功能完整的智能QQ

weixin_30607125的博客 331

本地Python按LeetCode输入生成二叉树

近期在LeetCode上刷树相关的题,LeetNode的二叉树的输入为一个列表,如下图。笔者平时习惯在本地编程调试正确后再提交,因此在本地调试时需要能将对应列表转化成二叉树的结构。 LeetCode中树以列表形式输入 首先分析一下输入列表和对应二叉树的关系。实际上输入列表就是对对应二叉树的层序遍历,即逐层地,从左到右访问并输出所有节点,其中null表示没有对应子节点。按上述方式生成的输入列表将具有以下特点: 1.若列表不为空,则列表的首项元素为二叉树的根 2. ...

Mr_111000的专栏 2093

海康visionmaster-渲染结果:通过绑定流程或模块获取 渲染结果的方法

海康visionmaster-渲染结果:通过绑定流程或模块获取 渲染结果的方法

视觉人机器视觉的博客 2646

【leetcode本地调试:链表和二叉树,列表转链表,列表转二叉树,python】

leetcode本地调试:链表和二叉树,列表转链表,列表转二叉树,python 在本地调试leetcode上的链表和二叉树相关题目, 如pycharm,可以参考以下代码。 目录leetcode本地调试:链表和二叉树,列表转链表,列表转二叉树,python链表的本地调试二叉树的本地调试参考 链表的本地调试 以 21. 合并两个有序链表 为例: #定义节点 class ListNode: def __init__(self, val=0, next=None): self.val

sadbird1729的博客 2109

极智AI | 算能SC5+智算卡驱动安装与升级

大家好,我是极智视界,本文介绍一下 算能SC5+智算卡驱动安装与升级

极智视界 1277

EUV光源技术路线深度解析

EUV光刻技术的关键瓶颈在于13.5纳米光源的稳定高效获取。主流技术路线从DPP放电等离子体发展为LPP激光等离子体方案,后者通过激光轰击锡液滴实现更高功率输出。新出现的LDP技术综合激光预热与放电优势,虽功率扩展性有限,但为光源技术提供了有益补充。目前LPP仍是唯一通过量产验证的方案,而LDP可能作为过渡技术应用于特定场景。EUV光源的发展实质是能量转化效率与系统可靠性的持续优化过程,各种技术路线的探索共同推动着这一核心工艺的进步。

硬核科技 558

【Leetcode刷题Python】从列表list中创建一颗二叉树

从列表中,使用递归方法创建二叉树,每个节点最多有两个子节点,以索引去从列表中取子节点的值,i为根节点,左子节点的值为2×i+1,右子节点的值为2×i+2。

BetterBench的博客 1342

智能Agent如何重塑企业流程

在当今数字化时代,企业流程的效率和敏捷性至关重要。传统企业流程往往受限于人工操作,效率低下、成本高昂,难以适应快速变化的市场环境。智能Agent作为一种新兴技术,凭借其强大的智能化能力,正在逐渐改变企业流程的运作模式,为企业带来新的机遇和挑战。智能Agent是一种能够感知环境、自主决策、执行任务的软件实体。它可以模拟人类的智能行为,例如学习、推理、规划和沟通。通过将智能Agent嵌入到企业流程中,可以实现流程的自动化、优化和智能化,从而提高效率、降低成本、提升客户体验。8.1 研究成果总结。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 874

LeetCode第108题_将有序数组转换为二叉搜索树

给你一个整数数组nums,其中元素已经按排列,请你将其转换为一棵二叉搜索树。二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

qq_40263592的博客 1538

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

本题的核心模式是分治法。由于输入的数组是有序的,而二叉搜索树(BST)的性质是左子树的所有节点值小于根节点值,右子树的所有节点值大于根节点值。所以可以取数组的中间元素作为根节点,将数组分成左右两部分,分别递归构建左右子树,这样能保证构建出的 BST 是高度平衡的。LeetCode 第 108 题是“将有序数组转换为二叉搜索树”。题目要求是将一个按照升序排列的有序数组,转换为一棵高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

qq_40844444的博客 482

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

LeetCode.108 将有序数组转换为二叉搜索树,递归解法

weixin_43599456的博客 347

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。

2301_80211119的博客 1206

【LeetCode108.将有序数组转换为二叉搜索树】vs. 【将二叉搜索树转换为有序数组】

由于二叉搜索树对于任意一个节点来说,左孩子小于父亲节点,右孩子大于父亲节点,因此可以直接通过中序遍历,得到升序数组。

qq_52114254的博客 369

代码随想录第23天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

3、确定单层递归的逻辑:如果根节点的值小于区间的左边界的值,则递归右子树,返回右子树符合条件的头节点;刚开始想得很简单,就是把左节点和区间的最小值比较,右节点和区间最大值比较,也算利用了二叉搜索树的特点,但是后来反应过来不能这样粗暴地一分为二,因为左节点连接的右子树上可能有在区间内的值,右节点连接的左子树可能有在区间内的值。如果是偶数(n)个节点,就求第(n+1)/2位置的数为中位数,中位数为根节点,左区间的中位数为左节点,右区间的中位数为右节点,不断递归得最终的平衡二叉搜索树。

lilith_2001的博客 1419

代码随想录算法训练营Day26 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

训练营第26天:669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

jiabao0520的博客 1241

力扣108. 将有序数组转换为二叉搜索树(中序遍历,递归)

力扣108. 将有序数组转换为二叉搜索树(中序遍历,递归) https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/ 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组...

小麦China的博客 583

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

因此我们应该选数组的中间位置元素作为根节点,这样左右子树的元素个数才接近,且满足根节点大于左子树所有节点,小于右子树所有节点。由于是要构造平衡的二叉搜索树,所以两边的高度最多相差。排列,请你将其转换为一棵。

YouMing_Li的博客 480

代码随想录算法训练营Day18 | Leetcode 669修剪二叉搜索树、108将有序数组转换为二叉搜索树、538把二叉搜索树转换为累加树

给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中。改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。node.val 的值之和。

叽里呱啦大王的博客 1003

DAY26||669.修建二叉树 |108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树

给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在中。修剪树改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。[1,null,2]

2301_79865280的博客 1101

Java实现 LeetCode 108 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9...

南 墙 1万+

代码随想录Day21|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

二叉树告一段落。

sleepwhite的博客 943
上一篇: 二叉树的层次遍历
下一篇: JAVA反射机制
coder_flag
博客等级 码龄9年 2粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值