当前位置: 首页 > news >正文

企业站南京软件定制开发

企业站,南京软件定制开发,衡阳网站建设网站,网站建设责任分工表#x1f600;前言 在算法面试中#xff0c;二叉树的层序遍历是一个经典的题目。而这道题的要求是进一步将二叉树的每一层结点值打印成多行#xff0c;即同一层结点从左至右输出#xff0c;最终结果存放到一个二维数组中返回。接下来#xff0c;我们将通过代码实例详细解析… 前言 在算法面试中二叉树的层序遍历是一个经典的题目。而这道题的要求是进一步将二叉树的每一层结点值打印成多行即同一层结点从左至右输出最终结果存放到一个二维数组中返回。接下来我们将通过代码实例详细解析解题思路。 个人主页尘觉主页 文章目录 把二叉树打印成多行题目描述数据范围要求 示例示例1示例2示例3示例4 解题思路代码实现详细解析 总结 把二叉树打印成多行 NowCoder 题目描述 给定一个节点数为 n 的二叉树要求从上到下按层打印二叉树的 val 值同一层节点从左至右输出每一层输出一行将输出的结果存放到一个二维数组中返回。 以二叉树 {1,2,3,#,#,4,5} 为例它的层序遍历结果如下 [[1],[2,3],[4,5] ]数据范围 二叉树的节点数 0 ≤ n ≤ 1000每个节点的值 0 ≤ val ≤ 1000 要求 时间复杂度O(n)空间复杂度O(n) 示例 示例1 输入{1,2,3,#,#,4,5} 返回值[[1],[2,3],[4,5]] 示例2 输入{8,6,10,5,7,9,11} 返回值[[8],[6,10],[5,7,9,11]] 示例3 输入{1,2,3,4,5} 返回值[[1],[2,3],[4,5]] 示例4 输入{} 返回值[] 解题思路 要实现这一功能我们可以借助广度优先搜索BFS来逐层遍历二叉树。BFS 通常使用队列来实现。具体步骤如下 队列初始化首先将二叉树的根节点放入队列。逐层遍历循环遍历队列每次从队列中取出当前层的所有节点记录它们的值并将其左右子节点依次加入队列以便下一次循环遍历。存储每层节点在遍历每层节点时将当前层的节点值存入一个列表然后将这个列表添加到最终的结果二维数组中。处理空树的情况如果输入的树为空则返回一个空的结果数组。 代码实现 下面是使用 Java 实现的完整代码 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue;public class Solution {public ArrayListArrayListInteger Print(TreeNode pRoot) {// 初始化一个二维数组来保存最终结果ArrayListArrayListInteger ret new ArrayList();// 初始化一个队列用于层序遍历QueueTreeNode queue new LinkedList();// 将根节点加入队列queue.add(pRoot);// 当队列不为空时继续进行遍历while (!queue.isEmpty()) {// 用于存储当前层的节点值ArrayListInteger list new ArrayList();// 当前层的节点数量int cnt queue.size();// 遍历当前层的所有节点while (cnt-- 0) {// 取出队列中的节点TreeNode node queue.poll();// 如果节点为空则跳过if (node null)continue;// 将节点的值加入当前层的列表list.add(node.val);// 将节点的左子节点加入队列queue.add(node.left);// 将节点的右子节点加入队列queue.add(node.right);}// 如果当前层有节点将其加入最终结果if (list.size() ! 0)ret.add(list);}// 返回最终结果return ret;} }详细解析 Queue 数据结构我们使用 QueueTreeNode 来保存每一层的节点。在每一层开始时队列中包含了所有该层的节点。层序遍历通过 queue.size() 获取当前层的节点数量并使用一个循环来遍历这些节点。在遍历过程中将当前节点的左右子节点依次加入队列。结果存储每一层遍历完后我们将当前层的节点值列表 list 添加到结果数组 ret 中。边界条件如果 queue 中没有元素即队列为空时表示树已经遍历完毕退出循环。 总结 这个解法的核心是利用队列来实现二叉树的层序遍历。通过逐层记录节点值我们能够按照题目要求将每一层节点的值按行输出并最终返回一个包含多行的二维数组。该解法具有良好的时间和空间复杂度适用于题目要求的节点数量范围。 热门专栏推荐 想学习vue的可以看看这个 java基础合集 数据库合集 redis合集 nginx合集 linux合集 手写机制 微服务组件 spring_尘觉 springMVC mybits 等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持 欢迎大家加入我的社区 尘觉社区 文章到这里就结束了如果有什么疑问的地方请指出诸佬们一起来评论区一起讨论 希望能和诸佬们一起努力今后我们一起观看感谢您的阅读 如果帮助到您不妨3连支持一下创造不易您们的支持是我的动力
http://www.w-s-a.com/news/685286/

相关文章:

  • 苏州高端网站建设咨询wordpress云图插件
  • 河北省建设厅网站重新安装优秀中文网页设计
  • 如何在腾讯云做网站开源站群cms
  • 公司网站建设的意义网易做网站
  • 网络营销案例分析与实践搜外seo
  • 手机建网站挣钱吗wordpress面包屑
  • 淘客做网站怎么备案网站开发工具的是什么
  • 提供大良网站建设郑州网站建设网站开发
  • 邢台做wap网站价格wordpress评论滑动
  • 绝味鸭脖网站建设规划书江苏建设人才网 官网
  • 网站源码授权破解centos wordpress 整站
  • 建设一个私人视频网站wordpress js
  • 手机企业网站制作流程3d建模自学
  • 网站优化方案和实施wordpress的归档
  • 建设事业单位网站多少钱集艾设计公司官网
  • 网站建设与管理方案书图片的制作方法
  • 中文建网站美发网站模板带手机版
  • 免费聊天不充值软件windows优化大师下载安装
  • 网站优化的关键词自己怎么做外贸网站空间
  • 现在建设的网站有什么劣势温州互联网公司
  • 重庆自助企业建站模板淘宝关键词top排行榜
  • 平邑网站制作买高端品牌网站
  • 深圳建网站三千网站安全代维
  • 西宁市精神文明建设网站装饰设计甲级资质
  • 做教育行业营销类型的网站徐州做网站多少钱
  • 临沂品牌网站制作企业网站建设搜集资料
  • wordpress注册验证码手机网站优化
  • 往建设厅网站上传东西做衣服的教程网站有哪些
  • 网上商城网站设计免费咨询口腔科医生回答在线
  • 南京网站c建设云世家 s浏览器