尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

DeepSeek LeetCode 107. 二叉树的层序遍历 II Kotlin实现

发布时间:2026/9/26 4:14:49

资讯中心
01
ARTICLE

DeepSeek LeetCode 107. 二叉树的层序遍历 II Kotlin实现

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)但会有元素搬移开销。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。