力扣——102. 二叉树的层序遍历

server/2024/12/27 4:42:02/

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

输入:root = [1]
输出:[[1]]

示例 3:

输入:root = []
输出:[]

提示:

  • 树中节点数目在范围 [0, 2000] 内
  • -1000 <= Node.val <= 1000

        对于二叉树的层序遍历来讲,一般比较常用的方法就是使用BFS(广度优先搜索)进行遍历,相对于DFS来讲,因为DFS本身维护了一个栈,所以相对实现就比较简单一些,而对于BFS来说需要自己实现一个队列去进行维护,一般情况下使用DFS的场景也比较多一些。

本题我们就来看看如何使用BFS来实现二叉树的层序遍历,对于BFS怎么遍历的以及二叉树的层序遍历本文就不讲解了,不懂的小伙伴可以查阅一下资料~

先来看代码

public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> re=new ArrayList<>();Queue<TreeNode> queue=new ArrayDeque();if(root!=null){queue.add(root);}while(!queue.isEmpty()){int n=queue.size();List<Integer> temp=new ArrayList<>();for(int i=0;i<n;i++){TreeNode node=queue.poll();temp.add(node.val);if(node.left!=null){queue.add(node.left);}if(node.right!=null){queue.add(node.right);}}re.add(temp);}return re;}

注意点:

因为BFS最后遍历返回的结果是一个一维数组,与我们最后需要得到的结果并不匹配,所以我们需要加一个temp数组去计算每一层遍历的结果并进行存储。

需要注意的点就是在计算queue的长度的时候,不能在循环上直接i<queue.size(),因为在循环里面会向队列里面添加数据,从而改变队列长度,导致最后结果不对。


http://www.ppmy.cn/server/153214.html

相关文章

玩转OCR | 腾讯云智能结构化OCR推动跨行业高效精准的文档处理与数据提取新时代

在数字化转型的浪潮中&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术已成为企业提高效率、降低成本的关键工具。腾讯云智能结构化OCR凭借其先进的技术和广泛的应用场景&#xff0c;正在推动跨行业高效精准的文档处理与数据提取新时代。本文将全面介绍腾讯云智能结构…

Ingress-Nginx Annotations 指南:配置要点全方面解读(下)

文章目录 1.HTTP2 Push Preload2.Server Alias3.Server snippet4.Client Body Buffer Size5.External Authentication6.Global External Authentication7.Rate Limiting8.Global Rate Limiting9.Permanent Redirect10.Permanent Redirect Code11.Temporal Redirect12.SSL Passt…

人工智能与物联网:从智慧家居到智能城市的未来蓝图

引言&#xff1a;未来已来&#xff0c;智能化的世界 想象一下&#xff0c;一个早晨&#xff0c;智能闹钟根据你的睡眠状态自动调整叫醒时间&#xff0c;咖啡机早已备好热腾腾的咖啡&#xff0c;窗帘缓缓拉开&#xff0c;迎接清晨的阳光。这不是科幻小说中的场景&#xff0c;而是…

日本IT行业|分享实用的开发语言及框架

在日本IT行业中&#xff0c;开发语言与框架的选择非常多样化&#xff0c;但也有一些特定的技术和框架更为流行。以下是对日本IT行业在用的开发语言与框架的详细分享&#xff1a; 开发语言 Java&#xff1a;Java在日本是一门非常稳定且受欢迎的编程语言&#xff0c;很多日本公…

[计算机图形学] 【Unity Shader】【图形渲染】Shader数学基础6-逆矩阵与正交矩阵

在计算机图形学与Shader编程中,矩阵广泛应用于各种变换操作,如旋转、缩放、平移等。理解矩阵的基本性质,尤其是逆矩阵和正交矩阵,对于有效地实现图形变换至关重要。本文将介绍逆矩阵和正交矩阵的数学基础,帮助你更好地理解这些概念及其在图形学中的应用。 逆矩阵的基本概…

京准电钟解读,NTP网络授时服务器如何提升DCS系统效率

京准电钟解读&#xff0c;NTP网络授时服务器如何提升DCS系统效率 京准电钟解读&#xff0c;NTP网络授时服务器如何提升DCS系统效率 NTP 网络授时服务器为防火墙内的网络设备、终端、服务器提供准确、可靠和安全的高精度卫星时间参考&#xff0c;可为它支持数万台支持标准的网…

单盘做raid 0 故障后 需要重建阵列

一 第一种情况 1 XCC--服务器配置--阵列配置 2 创造虚拟硬盘 3 选择需要做的阵列&#xff0c;然后nest 4 添加 二 BIOS下去识别硬盘 1 进drive healthy 看一下状态 2 raid卡在bmc下识别不正常&#xff1f; 可能是 BMC与BIOS要升级微码 三 什么情况下会出现硬盘穿刺b…

设置首选网络类型以及调用Android框架层的隐藏API

在Android SDK中提供的framework.jar是阉割版本的&#xff0c;比如有些类标记为hide&#xff0c;这些类不会被打包到这个jar中&#xff0c;而有些只是类中的某个方法或或属性被标记为hide&#xff0c;则这些类或属性会被打包到framework.jar&#xff0c;但是我们无法调用&#…