当前位置: 首页 > 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/884596/

相关文章:

  • 佛山网站改版wordpress 是否有后门
  • 如何承接网站建设外包wordpress产品布局
  • 洛阳建站洛阳市网站建设视觉设计专业
  • 婚恋网站建设分析网站建设硬件需求
  • 北京做网站电话wordpress如何换图片
  • 电影网站做cpa深圳信息网
  • 单县网站建设优化大师电脑版官网
  • 番禺区住房和建设局物业网站浦东新区网站设计
  • 外贸网站外包WordPress仿牌
  • 如何设计网站logohtml5开发
  • 金坛建设银行总行网站网站开发费用如何记账
  • 贵阳企业网站设计制作湛江知名网站建设电话
  • 网站建设安全性高清效果图网站
  • 上海网站排名推广黄山公司做网站
  • 全国网站建设公司实力排名单页面网站建设
  • 网站建设方案 规划wordpress 要备案吗
  • 一个完整的网站 技术网站建设中 敬请期待.
  • 如何建一个公司的网站网上怎么推广公司产品
  • 十大旅游电子商务网站影楼网站制作
  • 深圳网站建设代理商网业打开慢的原因
  • 旅游网站经营模式在屈臣氏做网站运营
  • 做管理信息的网站com域名查询
  • 免费推广网站推荐外贸推广平台哪个好
  • 腾宁科技做网站399元全包企业校园网站建设
  • 海外医疗兼职网站建设公司取名字大全免费
  • 龙口市规划建设局网站vi设计和品牌设计的区别
  • 企业网站的总体设计网站建设评审验收会议主持词
  • 网站建设完成推广响应式网站设计开发
  • 电商网站用php做的吗网站开发流程可规划为那三个阶段
  • flash网站怎么做音乐停止深圳网站建设金瓷网络