DeepSeek    LeetCode 107. 二叉树的层序遍历 II Kotlin实现
LeetCode 107. 二叉树的层序遍历 II — Kotlin 实现思路标准 BFS 层序遍历每遍历完一层得到一个 List。题目要求自底向上所以· 方案一每层结果插入到 result 的头部add(0, level)· 方案二正常从顶到底收集最后 reverse()两者时间复杂度相同方案二在底层是数组时不涉及元素移动实际更高效。代码classTreeNode(varval:Int){varleft:TreeNode?nullvarright:TreeNode?null}classSolution{funlevelOrderBottom(root:TreeNode?):ListListInt{valresultmutableListOfListInt()if(rootnull)returnresultvalqueueArrayDequeTreeNode()queue.addLast(root)while(queue.isNotEmpty()){valsizequeue.sizevallevelArrayListInt(size)repeat(size){valnodequeue.removeFirst()level.add(node.val)node.left?.let{queue.addLast(it)}node.right?.let{queue.addLast(it)}}result.add(level)}result.reverse()returnresult}}复杂度分析· 时间复杂度O(n)每个节点进出队列各一次reverse 是 O(层数) ≤ O(n)。· 空间复杂度O(n)队列最多存一层的节点数最坏满二叉树最后一层为 n/2。关键点BFS 分层用 queue.size 作为当前层的节点数循环该次数即可保证一次处理一整层而不是把所有节点混在一起。ArrayDequeKotlin 中 ArrayDeque 做队列比 LinkedList 性能更好且支持 addLast / removeFirst。let 空安全node.left?.let { queue.addLast(it) } 比 if (node.left ! null) 更简洁。自底向上先收集再 reverse()语义清晰也可改用 result.add(0, level)但会有元素搬移开销。

相关新闻

面试官:ReAct 和 Plan-and-Execute,你平时怎么选?你答「看复杂程度」,他听到的是「我没选过」

面试官:ReAct 和 Plan-and-Execute,你平时怎么选?你答「看复杂程度」,他听到的是「我没选过」

ReAct 和 Plan-and-Execute 的差别不在难度,在「不确定性落在哪」。这篇文章给你一套能当场判定的选型流程,以及三种形态各自的失败模式。 面试现场 大厂 AI 应用岗 **面试官:**ReAct 和 Plan-and-Execute,你平时怎么选&#x…

2026/9/26 4:15:00 阅读更多 →
软件项目管理实战:从需求到收尾的全流程方法与避坑指南

软件项目管理实战:从需求到收尾的全流程方法与避坑指南

做软件项目管理这些年,我最常被同行问的一句话是:项目又快又稳的秘诀到底是什么?说实话,不存在什么万能秘诀,但所有做得好的项目,背后都逃不开几件基础事——需求聊透、范围控住、节奏稳住、人盘活。这篇文…

2026/9/26 4:15:00 阅读更多 →
基于卷积神经网络(CNN)的个性化定制表情系统的设计与实现机器学习实战项目python数据分析与可视化

基于卷积神经网络(CNN)的个性化定制表情系统的设计与实现机器学习实战项目python数据分析与可视化

✅源码获取: 🍅--------------------【点击左上方头像,在置顶文章上方的wx】联系我们-------------🍅✌网站介绍:✌10年项目辅导经验、专注于计算机技术领域学生项目实战辅导。✌服务范围:大数据、机器学习…

2026/9/26 4:14:00 阅读更多 →

最新新闻

具身智能遇上嵌入式操作系统:实时性、异构算力与混合部署实战解析

具身智能遇上嵌入式操作系统:实时性、异构算力与混合部署实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 4:54:23 阅读更多 →
Windows原生工具远程连接Ubuntu桌面:RDP与SSH配置实战

Windows原生工具远程连接Ubuntu桌面:RDP与SSH配置实战

1. 两条原生通道:RDP和SSH,先摸清它们的分工1.1 大多数人的认知盲区:Windows的"远程桌面连接"不只是能连Windows先回答最核心的疑问:Windows自带工具到底能不能连接Ubuntu桌面版?答案不仅能,而且…

2026/9/26 4:54:23 阅读更多 →
告别孤立背词:Echo Loop难句收藏+语境化闪卡复习,原句上下文记忆完整用法

告别孤立背词:Echo Loop难句收藏+语境化闪卡复习,原句上下文记忆完整用法

告别孤立背词:Echo Loop难句收藏语境化闪卡复习,原句上下文记忆完整用法 【免费下载链接】Echo-Loop Echo Loop 是一款科学、高效的 AI 英语听说训练 App,通过精听、跟读、盲听、复述和间隔复习,自动驱动学习者把每一段音频真正练…

2026/9/26 4:54:23 阅读更多 →
数据驱动收敛增强器:为CFD伪时间推进装上自动变速箱

数据驱动收敛增强器:为CFD伪时间推进装上自动变速箱

做CFD计算的人恐怕都有过这样的经历:一个跨声速复杂构型,网格量两千万起步,伪时间推进跑了三天,残差还在1e-4附近磨蹭,忽上忽下就是不下去。以前碰到这种问题,常规操作是调CFL数、换隐式格式、开多重网格&a…

2026/9/26 4:54:23 阅读更多 →
VSCode离线安装Python插件实战指南

VSCode离线安装Python插件实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 4:54:23 阅读更多 →
还在简历里写“熟悉Vue”?飞算JavaAI已经让Java后端独立交付项目

还在简历里写“熟悉Vue”?飞算JavaAI已经让Java后端独立交付项目

目录前言一、Java后端的求职差距,藏在交付边界里求职溢价来自更大的责任范围二、从一段社区治理需求开始提交完整业务需求三、先让AI把业务关系拆清楚14个关键点覆盖治理全流程9张数据表建立业务关联四、前后端围绕同一套规则生成Java后端负责业务判断与验收五、完整…

2026/9/26 4:53:23 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →