Leetcode 102. 二叉树的层次遍历

leetcode解题之102&107. Binary Tree Level Order Traversal java版(二叉树层次遍历) 102. Binary Tree Level Order Traversal ,107. Binary Tree Level Order Traversal II ,广度优先遍历, leetcode解题之102. Binary Tree Level Order Traversal java版(二叉树层次遍历) 阅读详情

题目

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
在这里插入图片描述

解答

解法一:递归

深度等价于层级, 可利用深度来判断当前结点所处的层级。

进而可以根据当前结点的深度定位其在 res 的下标位置。

代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> res = new ArrayList<>();
        levelOrder(root, 0, res);
        return res;
    }
    
    private void levelOrder(TreeNode node, int level, List<List<Integer>> res) {
        if(node == null) return;
        
        if(level == res.size()) {
            res.add(new ArrayList<>());
        }
        
        res.get(level).add(node.val);
        levelOrder(node.left, level + 1, res);
        levelOrder(node.right, level + 1, res);
    }
}
结果

在这里插入图片描述

解法二:队列 + BFS

使用队列。

通过 Q.size() 可以控制只遍历一层结点。

代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        if(root == null) return new ArrayList<>();
        
        List<List<Integer>> res = new ArrayList<>();
        LinkedList<TreeNode> Q = new LinkedList<>(); 
        Q.offer(root);
        while(!Q.isEmpty()) {
            int size = Q.size();
            List<Integer> cur = new ArrayList<>();
            while(size -- > 0) {
                TreeNode node = Q.poll();
                cur.add(node.val);
                if(node.left != null) {
                    Q.offer(node.left);
                }
                
                if(node.right != null) {
                    Q.offer(node.right);
                }
            }
            
            res.add(cur);
        }
        
        return res;
    }
}
结果

在这里插入图片描述

排查单片机不工作的‘玄学’故障:从LDO选型、复位电路到焊接不良的完整避坑指南 本文深入剖析单片机不工作的常见硬件故障,从LDO选型、复位电路设计到PCB布局和焊接工艺,提供系统性排查方法。重点分析3.3V电源稳定性、LDO动态响应特性及复位电路设计要点,帮助工程师快速定位和解决嵌入式系统中的'玄学'故障,提升产品可靠性。 阅读详情

相关推荐

【Docker】如何让docker容器正常使用nvidia显卡

描述了如何在docker容器中使用英伟达显卡的过程和问题解决方法。

NameLoadingFailed的博客 8372

LeetCode第102题&107题 二叉树的层次遍历 — 一招鲜吃遍天~

不是很理解,同样是二叉树的层次遍历问题, 102题是Medium ,107题是 Easy ???? 多年的强迫症又犯了???? LeetCode第 102 题 题目(Medium): 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-...

小名同学 21万+

complier lab2

只需支持定义 main 函数即可不带参数 int main(){...}带参数 int main(int argc, int argv){...}

qq_43581843的博客 904

LeetCode 力扣 102. 二叉树的层次遍历

题目描述(中等难度) 二叉树的层次遍历,输出一个 list 的 list。 解法一 DFS 这道题考的就是 BFS,我们可以通过 DFS 实现。只需要在递归过程中将当前 level 传入即可。 public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>>...

wind_liang的博客 972

FPGA实战:从零构建eMMC控制器(Verilog篇)

本文详细介绍了如何使用Verilog从零构建FPGA上的eMMC控制器,涵盖eMMC接口基础、命令系统解析、关键模块设计及性能优化技巧。通过实战案例,帮助开发者掌握高速数据存储解决方案,提升嵌入式系统开发能力。

weixin_26802933的博客 297

使用podman 容器化安装DIFY

本文阐述了使用podman容器化安装DIFY的过程

wengad的博客 1901

LeetCode102-二叉树的层次遍历

LeetCode102-二叉树的层次遍历 最近全国疫情严重,待在家里没事干,马上又要准备春招了,最近刷刷题,记录一下!再说一句,武汉加油,大家出门记得戴口罩! 1、题目 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ ...

sk18192449347的博客 238

Modelica建模,Modelica语言的学习,技术调研工作

Modelica是由Modelica协会维护、免费开放的物理系统面向对象的统一建模语言规范,为机、电、液、控等多领域复杂工程系统提供了统一的物理建模语言规范。 Modelica作为多学科统一建模仿真的国际标准,被仿真界广泛采用,系统多领域统一建模仿真,已成为世界公认的MBSE和CPS的核心关键支持技术。 Modelica 语法、函数、包、连接器、组件、子系统

xzb5566的专栏 4636

Leetcode 102 二叉树的层次遍历

Leetcode 102 二叉树的层次遍历 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 详解:这道题没什么好说的,层次遍历是二叉树一种非常基础的遍历方式, class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List&lt...

qq_30163473的博客 132

ubuntu安装英伟达显卡驱动后wifi消失解决方法

ubuntu安装英伟达显卡驱动后(比如4090和3090等),会把wifi和蓝牙驱动去除,导致wifi无法连接。需要重新下载驱动安装。

人工智能(AI)技术,大模型技术,深度学习,机器学习,计算机视觉,AI工具实践应用等分享 3903

如何用Python打造PubMed API客户端:科研文献检索自动化实践

PubMed提供了官方的Entrez E-utilities API接口,支持程序化检索文献,但直接调用API需处理请求重试、参数封装、数据解析等问题。批量获取文献ID及结构化详情(标题、作者、DOI等)内置重试机制,应对网络波动或API限流统一数据输出格式,便于后续分析(如文献计量、AI文本处理)灵活适配不同检索需求(如指定数据库、结果数量)本文实现的PubMed API客户端,通过封装API请求、重试机制、数据解析,让科研文献检索从“手动点击”变为“代码自动化”。

ASKCOS博客 357

leetcode 第102题 二叉树的层次遍历, 第103题二叉树的锯齿形层次遍历, 第107题 二叉树的层次遍历 II

leetcode 第102题 二叉树的层次遍历, 第103题二叉树的锯齿形层次遍历, 第107题 二叉树的层次遍历 II 问题分析 这三道题都考察的都是二叉树的广度优先遍历,二叉树的广度优先遍历非常明显,就是按照顺序输出每一层的节点。这三题都是一个套路,同一种方法只要做一点修改就行了。 102 题 二叉树的层次遍历 这一题是为了按照顺序输出给定二叉树的每一层节点的值,其中每一层的值作为一个数组。具...

leetcode 第105题(从前序与中序遍历序列构造二叉树) ,第106题(从中序与后序遍历序列构造二叉树) 396

ESP32S3接入讯飞在线语音识别教程及配套源代码

本文介绍了如何使用ESP32-S3开发板实现讯飞在线语音识别功能。首先,需要准备硬件设备,包括ESP32-S3开发板、麦克风模块、MicroSD卡模块和扬声器模块。接着,安装Arduino IDE并配置ESP32-S3开发环境,注册讯飞开放平台账号并获取API凭证。然后,通过I2S接口连接麦克风模块,并编写代码实现语音录制、Base64编码、API请求和识别结果处理。代码包括初始化WiFi、麦克风、系统时间,以及录制语音、发送请求、解析响应等功能。最后,通过按键触发录音,并将识别结果输出到串口。

2401_88800025的博客 746

Leetcode 102:二叉树的层次遍历

Leetcode 102:二叉树的层次遍历题目描述我的解法:前序遍历思想 题目描述 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ]...

IcdKnight的博客 320

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode 102 二叉树的层次遍历 Java

LeetCode 102 二叉树的层次遍历 Java题目描述代码 题目描述 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 代码 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tree...

qq_29061435的博客 216

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LeetCode 102:二叉树的层次遍历(java)

LeetCode 102:二叉树的层次遍历(java) 题目: 解答: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val...

樊凯的博客 421

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

按层次遍历二叉树_LeetCode | 102.二叉树的层次遍历

这次来写一下 LeetCode 的第 102 题,二叉树的层次遍历。题目描述 题目直接从 LeetCode 上截图过来,题目如下: 上面的题就是 二叉树的层次遍历 题目的截图,同时 LeetCode 会根据选择的语言给出一个类的定义或者函数的定义,然后在其中实现 二叉树的层次遍历的解题过程。这次我使用 C++ 语言来进行完成。 ...

weixin_30465747的博客 323

LeetCode第102题:二叉树的层次遍历(中等)

LeetCode第102题:二叉树的层次遍历(中等) 题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 解题思路:第一反应就是想用递归,但是两个List不能合并到一起,也没遍历右节点。 class Solution { List<List<Integer>> ans = new ArrayList<List<Integer>>(); public List<List<Integ

new_whiter的博客 276

LeetCode 102. 二叉树的层次遍历

LeetCode 102. 二叉树的层次遍历 题目 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 分析 和别的二叉树遍历一样,dfs或者bfs即可。用队列迭代处理也行。 C++...

Ailecccc的博客 150

c++根据二叉树的层次遍历建立二叉树_LeetCode | 102.二叉树的层次遍历

这次来写一下 LeetCode 的第 102 题,二叉树的层次遍历。题目描述题目直接从 LeetCode 上截图过来,题目如下:102.二叉树的层次遍历题目上面的题就是 二叉树的层次遍历 题目的截图,同时 LeetCode 会根据选择的语言给出一个类的定义或者函数的定义,然后在其中实现 二叉树的层次遍历 的解题过程。这次我使用 C++ 语言来进行完成。C++ 语言给出的函数定义如下:/** * D...

weixin_39908948的博客 429

LeetCode——第102题:二叉树的层次遍历

题目: 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 代码: package leetCode; ...

RBreeze的博客 2000

Leetcode102: 二叉树的层次遍历

问题描述: https://leetcode.com/problems/binary-tree-level-order-traversal/ Given binary tree [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 return its level order traversal as: [...

一面之媛 174

LeetCode 102: 二叉树的层次遍历(DFS,BFS,双队列)

LeetCode 102: 二叉树的层次遍历 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] DFS 递归 class Solution {...

bitdai2018 224

Java实现 LeetCode 102 二叉树的层次遍历

102. 二叉树的层次遍历 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] class Solution { public List<List<Intege...

南 墙 1万+

LeetCode刷题笔记 102. 二叉树的层次遍历

题目描述 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 Sample & Demo Code(递归,DFS) class Solution { List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>&...

XIIV13的博客 300

leetcode102 二叉树的层次遍历 递归

需要注意的是,在遍历左子树或者右子树的时候,涉及到向上或者向下遍历,为了让递归的过程中的同一层的节点放在同一个列表中,对于二叉树的遍历来说,想终止,即没东西遍历了,没东西遍历自然就停下来了。层次遍历是每一层的节点从左到右的遍历,所以。即最下面一层的左右节点都为空了。

dokii1的博客 271
上一篇: Leetcode 101. 对称二叉树
下一篇: Leetcode 103. 二叉树的锯齿形层次遍历
一纸浮萍
博客等级 码龄9年 11粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值