题目描述

解题思路

  • 由题可知,要求输出是按照二叉树每层的元素来做输出

  • 我使用队列来对二叉树每层元素进行存储和输出

  • 根据队列的长度可以判断出当前层的元素个数并遍历

  • 首先去判断入参是否为 null

    • 如果为 null则直接返回 null
  • 创建队列对象

  • 将 root放入队列

  • 遍历队列是否为 null

    • 因为我们会把每层元素都放入到队列中, 如果队列为 null则代表二叉树已经遍历完了
  • 创建一个 list集合保存元素 val

  • 获取当前队列长度

    • 当前队列长度就代表着当前二叉树层级的节点个数
  • 遍历获取二叉树当前层级的节点

    • 这里别忘记 size--;
  • 判断当前节点的左右两个节点是否为 null, 不为 null则加入队列

代码展示

class Solution {public List<List<Integer>> levelOrder(TreeNode root) {// 返回值List<List<Integer>> result = new ArrayList<>();// 如果如此那为 null,则直接返回if(root == null){return result;}// 设置队列Queue<TreeNode> queue = new LinkedList<>();queue.offer( root);// 循环遍历while(!queue.isEmpty()){// 创建当前层级的 listList<Integer> list = new ArrayList<>();// 获取当前层级的节点个数int size = queue.size();while(size > 0){// 获取当前节点TreeNode poll = queue.poll();if (poll.left != null){queue.offer(poll.left);}// 将右节点放入队列中if (poll.right != null){queue.offer(poll.right);}list.add(poll.val);size--;}// 将左节点放入队列中result.add(list);}return result;}
}
复制代码

结果分析

三、107.二叉树的层次遍历II

题目描述

解题思路

  • 和上一题的唯一区别就是上一题是自顶上下遍历, 这道题是自下向上遍历
  • 那么直接在上一题的基础上增加一个栈来存储每层节点元素
  • 最后返回之前做一个弹栈操作就可以了, 具体可看下面代码展示

代码展示

提交结果

四、199.二叉树的右视图

题目描述

解题思路

  • 这道题需要注意如下

    • 题中有说,是右视图,而不是获取最右节点
  • 实际的解题方法还是在 102的基础上遍历每一层节点获取 list
  • 在遍历 list获取每一层节点的最后一个节点
  • 然后返回就可以了, 具体代码请看代码展示

代码展示

提交结果

五、637.二叉树的层平均值

题目描述

解题思路

  • 一样的, 遍历每层节点的时候记录数值然后除一下就可以了
  • 这里需要注意的是要用double接收

代码展示

提交结果

六、429.N叉树的层序遍历

题目描述

解题思路

  • 这边需要注意的是二叉树变成了 n叉树, 其余不变
  • 就是在我们添加每层节点的时候判断左右节点为 null变成了遍历添加就 ok

代码展示

提交结果

七、515.在每个树行中找最大值

题目描述

解题思路

  • 这里需要注意一下节点的数值大小
  • -231 <= Node.val <= 231 - 1

代码展示

提交结果

八、116.填充每个节点的下一个右侧节点指针

题目描述

解题思路

  • 整体思路不变
  • 遍历的时候将当前节点的 next指向下一个节点就可以了
  • 但是需要注意的是最后一个节点指向 null, 所以判断条件为 size > 1 , 因为我们 size--, size == 1代表当前节点是该层节点的最后一个节点

代码展示

提交结果

九、117.填充每个节点的下一个右侧节点指针II

题目描述

解题思路

和上一题一样,可以直接代码复用

十、104. 二叉树的最大深度

题目描述

解题思路

  • 整体思路不变,
  • 每遍历一个层级 result++ 就可以了
  • 111.二叉树的最小深度也是相同原理,就不讲解了

代码展示

提交结果

稀土掘金首页沸点课程直播活动竞赛商城APP邀请有礼插件探索稀土掘金搜索创作者中心vip会员4Java查序的头像一篇文章带你玩转二叉树的层序遍历 | 十道题巩固练习相关推荐

  1. 刷题笔记(十四)--二叉树:层序遍历和DFS,BFS

    目录 系列文章目录 前言 题录 102. 二叉树的层序遍历 BFS DFS_前序遍历 107. 二叉树的层序遍历 II BFS DFS 199. 二叉树的右视图 BFS DFS 637. 二叉树的层平 ...

  2. 代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历 | 226.翻转二叉树 | 101. 对称二叉树

    递归三部曲 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 102. 二叉树的层序遍历 题解及想法 解法一 :递归法 class Solution {public List<Lis ...

  3. 一次字节面试,被二叉树的层序遍历捏爆了

    前言 大家好,我是bigsai,在数据结构与算法中,二叉树无论是考研.笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点,今天给大家讲讲二叉树的层序遍历. 这部分很多人可能会但是 ...

  4. 遍历children_二叉树:层序遍历登场!

    登场之后,我要打十个! 看完这篇文章虽然不能打十个,但是可以迅速打五个!而且够快! 102.二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值.(即逐层地,从左到右访问所有节点). ...

  5. 力扣题目——107. 二叉树的层序遍历 II

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根 ...

  6. 代码随想录算法训练营Day15|Leetcode102二叉树的层序遍历、Leetcode226翻转二叉树、Leetcode101对称二叉树

    Day15打卡! 时长:2h 今日感想:今天主要学习了二叉树层次遍历的思路方法和应用.题目看似简单,实则有很多细节,有时间可以做做其他相似的推荐题目~ Leetcode102 二叉树的层序遍历 题目链 ...

  7. 二叉树的层序遍历 II

    二叉树的层序遍历 II 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7] ...

  8. [力扣] 二叉树的层序遍历

    [力扣] 二叉树的层序遍历 广度优先算法,遍历每一层的节点 例题: 102. 二叉树的层序遍历 # Definition for a binary tree node. # class TreeNod ...

  9. 算法--- 二叉树的层序遍历 II

    题目 二叉树的层序遍历 II 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如: 给定二叉树 [3,9,20,null,null,15, ...

最新文章

  1. Spinnaker部署
  2. 【作品发布】QQ2008远程自助 1.5.1.1
  3. PHP之GD函数的使用
  4. tencent intern learning
  5. 关于工程技术中PE、ME、TE、IE、EE的解说
  6. 学好英语网首页制作_没有美术基础的新手小白,如何学好淘宝美工?
  7. 基于JAVA+Servlet+JSP+MYSQL的心理咨询预约管理系统
  8. html5-5 HTML5表单元素和内嵌框架
  9. php 占位符替换_AJAX ASP / PHP实例
  10. 微信小程序图片上传并展示
  11. python 复制列表内容_python 复制列表的六种方法
  12. Maximum call stack size exceeded错误
  13. Redis的安装配置与使用
  14. 电商分析公式和指标整理
  15. 一张图回顾Hadoop十年 Hadoop老矣,尚能饭否
  16. 皇台酒业前三季净利亏1650万 拟深耕甘肃市场为中心辐射西北市场
  17. UVM factory机制 override机制详解
  18. 计算机系统限制某个用户只允许,Win10系统如何设置某些用户只能运行指定应用程序...
  19. 完整的保存onetab的书签信息
  20. 超过心跳间隔的客户端重连接导致额外的License消耗

热门文章

  1. 什么样的热设计是好的热设计?
  2. 打开计算机窗口抖动是什么原因,Win7电脑屏幕一直抖动的解决方法
  3. 我的世界服务器怎么指定领地皮,我的世界服务器怎么领取地皮
  4. 数据挖掘报告——汽车销售行业行为识别
  5. Python学习笔记16:爬取百度搜索图片的缩略图
  6. 兄弟DCP-1608 DCP-1618w粉盒加粉复位清零
  7. 跨站脚本攻击漏洞防范与解决办法
  8. 大神教你在 Linux 中查看你的时区
  9. 三维目标检测---BtcDet论文解读 Behind the Curtain: Learning Occluded Shapes for 3D Object Detection
  10. 苹果手机软件升级密码_忘记资金账号和密码,如何找回?