Leetcode 108,102:将有序数组转化为二叉搜索树,二叉树的层序遍历
1.题目描述题目解答这道题涉及到了二叉搜索树的知识点以及什么是平衡树我们来分开讲解二叉搜索树的特点就是左子节点父节点右子节点对于每一个节点都是这样无特殊情况下的时间复杂度为O(logn),如果退化成了链表的话时间复杂度就会变为O(n)。而平衡树就是指左子树和右子树的高度差1;将这两个结合在一起我们就可以进行推导。无非就是尽量保证两个条件尽量保证每个节点都有左右子树尽量保证左右子树的节点数目相等那么我们可以通过二分递归来解决这两个条件由于我们每次是根据中间值来进行赋值和查找所以可以可以保证我们的左右子节点分布是相对均匀的并且一定会有左右子树可以轻松满足以上的两个条件。classSolution{// 主函数将有序数组转换为平衡二叉搜索树publicTreeNodesortedArrayToBST(int[]nums){// 调用递归区间为整个数组 [0, nums.length-1]returnbulid(nums,0,nums.length-1);}// 递归函数把数组 [left, right] 这段区间转成 BSTpublicTreeNodebulid(int[]nums,intleft,intright){// 递归终止条件区间为空left right没有节点可建了if(leftright){returnnull;}// 取中间位置作为根保证左右元素数量尽量相等从而树是平衡的intmid(leftright)/2;// 用中间元素创建当前子树的根节点TreeNoderootnewTreeNode(nums[mid]);// 递归构建左子树用 [left, mid-1] 这段TreeNodelbulid(nums,left,mid-1);// 递归构建右子树用 [mid1, right] 这段TreeNoderbulid(nums,mid1,right);// 把左子树和右子树挂到根节点上root.leftl;root.rightr;// 返回当前子树的根returnroot;}}2.题目描述题目解答层序遍历可以使用队列就可以很轻松地解决大体思路是将父节点入队再将父节点的所有子节点按照左右的顺序入队之后再将原来的父节点出队并将他们的值存入列表中。剩下的节点就是下一层的所有节点他们会作为新一轮的父节点。如此循环往复直到队列为空后停止循环就得到了完整的列表classSolution{publicListListIntegerlevelOrder(TreeNoderoot){// 队列辅助 BFS先进先出依次存储每一层的节点QueueTreeNodequeuenewLinkedList();// 结果列表外层 List 的每个元素是一层的节点值ListListIntegerlistnewArrayList();// 空树直接返回空列表if(rootnull){returnlist;}// 根节点入队启动 BFSqueue.offer(root);// count 记录当前是第几层从 0 开始intcount0;// 队列空了说明所有层的节点都处理完了while(!queue.isEmpty()){// 当前层的节点数量这个值必须在循环前固定因为循环内会继续入队下一层节点intcurrentsizequeue.size();// 为当前层创建一个空列表list.add(newArrayList());// 逐个处理当前层的所有节点for(inti0;icurrentsize;i){// 弹出队头节点TreeNodecurqueue.poll();// 把当前节点的值加入当前层的列表list.get(count).add(cur.val);// 左子不为空就入队下一层才处理if(cur.left!null){queue.offer(cur.left);}// 右子不为空就入队下一层才处理if(cur.right!null){queue.offer(cur.right);}}// 当前层处理完毕层号加 1count;}returnlist;}}

相关新闻

FreeRTOS任务延时:vTaskDelay与vTaskDelayUntil的精准调度解析

FreeRTOS任务延时:vTaskDelay与vTaskDelayUntil的精准调度解析

1. 从一次“诡异”的延时不准说起在嵌入式实时操作系统(RTOS)的开发中,任务延时是最基础、最高频的操作之一。我刚开始接触FreeRTOS时,也以为vTaskDelay()就是万能的“休眠”函数,直到在一个需要精确周期执行的任务里栽…

2026/8/1 6:20:07 阅读更多 →
模切加工对导热矽胶布有什么要求?燊桐启元原材料标准

模切加工对导热矽胶布有什么要求?燊桐启元原材料标准

大量电子厂商采购导热矽胶布卷材,交由模切厂加工成型,原材料韧性、表面不粘、不掉粉直接影响模切良率。劣质矽胶布裁切边缘掉硅粉,粉尘落在 PCB 板上,容易造成微短路不良。深圳市燊桐启元电子科技有限公司针对模切行业需求优化导热…

2026/8/1 6:20:07 阅读更多 →
基于GPS 1PPS信号实现微秒级高精度时间同步的嵌入式系统设计

基于GPS 1PPS信号实现微秒级高精度时间同步的嵌入式系统设计

1. 项目概述:为什么我们需要1PPS时间同步?在分布式系统、通信基站、金融交易、科学观测乃至工业自动化领域,毫秒乃至微秒级的时间精度不再是锦上添花,而是系统稳定运行的基石。我们常说的网络时间协议(NTP)…

2026/8/1 6:20:07 阅读更多 →

最新新闻

Orca大模型安装实战:从环境配置到训练部署全流程解析

Orca大模型安装实战:从环境配置到训练部署全流程解析

1. 项目概述:为什么我们需要关注Orca的安装? 如果你最近在关注大语言模型(LLM)的微调领域,那么“Orca”这个名字大概率已经出现在你的视野里了。它不是一个新发现的海洋生物,而是微软研究院在2023年发布的…

2026/8/1 7:02:28 阅读更多 →
RS485通讯模块组态配置全解析:从硬件接线到MCGS/西门子实战

RS485通讯模块组态配置全解析:从硬件接线到MCGS/西门子实战

在工业自动化项目中,RS485通讯模块的组态配置是连接现场设备与上位机系统的关键环节。很多工程师在初次接触多设备联网时,常遇到通讯不稳定、地址冲突、协议解析错误等问题。本文将基于实际项目经验,完整梳理RS485通讯模块的组态流程&#xf…

2026/8/1 7:02:28 阅读更多 →
Python JSON序列化TypeError:解决type对象无法序列化的方法与实战

Python JSON序列化TypeError:解决type对象无法序列化的方法与实战

1. 问题根源:为什么type对象无法被序列化?在Python里,json.dumps()函数就像是一个严格的“翻译官”,它的工作是把Python世界里的各种对象(比如字典、列表、字符串、数字)翻译成JSON世界能理解的格式。JSON标…

2026/8/1 7:02:28 阅读更多 →
Android 10+开机自启动实现:从BOOT_COMPLETED广播到前台服务适配

Android 10+开机自启动实现:从BOOT_COMPLETED广播到前台服务适配

1. 开机自启动的“旧梦”与“新规”在Android开发的漫长岁月里,让一个应用在设备开机后自动运行,曾经是件相当“直白”的事情。很多开发者,尤其是需要后台常驻服务的工具类、安全类应用的开发者,对此功能再熟悉不过。其核心原理&a…

2026/8/1 7:02:28 阅读更多 →
TCP服务器监听状态检测:从原理到C/C++多维度实现

TCP服务器监听状态检测:从原理到C/C++多维度实现

1. 项目概述:为什么我们需要关注TCP监听状态?在后台服务开发中,我们经常需要编写一个TCP服务器。启动服务器,调用bind和listen之后,我们通常会得到一个“监听成功”的日志,然后程序就进入accept循环。但问题…

2026/8/1 7:02:28 阅读更多 →
亚马逊CLI工具有哪些? 4 款代表工具实测 + 选购指南

亚马逊CLI工具有哪些? 4 款代表工具实测 + 选购指南

更新时间: 2026-07-31 阅读时间: 9 分钟 💡 阅读提示: 本文从安装到实测全流程跑通 Sorftime CLI, 并从「CLI 原生度 / 平台覆盖 / 数据深度 / 上手成本」4 个维度横评 4 款工具. 想系统化批量查亚马逊数据的卖家必看.一、前言 人设我做了 3 年亚马逊铺货, 之前查销…

2026/8/1 7:01:28 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →