【剑指offer】 --- 二叉树的层序遍历

org.apache.commons.lang import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; 立即下载

题目描述


          从上往下打印出二叉树的每个节点,同层节点从左至右打印。


思路

         ①: 该题为二叉树的层序遍历;需要借助一个队列,队列具有先进先出的特性;

         ②: 在java中LinkedList实现了Deque接口,Deque<E> extends Queue<E>;

         ③: 队列的一些方法,进队(offer),队头元素(peek),出队并返回(poll);

         ④: 我们可以先将root节点入队,当队列不空时,先出队(打印),判断该元素的左节点是否为null,如果左不为null,左入队,判断右,是否为null,如果右不为null,右入队; 

代码实现

 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        Queue<TreeNode> queue = new LinkedList<TreeNode>(); 
        if(root == null){
            return list;
        }else{
            queue.offer(root); 
        }
        while(!queue.isEmpty()){
            //出队
            TreeNode node = queue.poll();
            //打印
            list.add(node.val);
            //左不空左入队
            if(node.left!=null){
                queue.offer(node.left);
            }
            //右不空右入队
            if(node.right!=null){
                queue.offer(node.right);
            }
        } 
        return list;
    }

 

jQuery 版本怎么选?别一上来就用最新版,老项目里这个坑很常见 jQuery 是一个封装好的 JavaScript 函数库,简称 JQ它的核心理念是jQuery 有 1.x、2.x、3.x 三个主要版本系列2.0 以上版本不再支持 IE6、IE7、IE8版本选择不能只看“新不新”,而要看项目兼容性和实际需求.min.js是压缩版文件,生产环境常用使用 jQuery 前必须先通过<script>正确引入基本就是没引入或引入失败可以快速绑定点击事件.animate()可以快速实现动画效果,但定位属性要设置好。 阅读详情

相关推荐

ADS1299寄存器配置与应用实战指南

本文提供了ADS1299高精度生物电信号采集芯片的寄存器配置与应用实战指南。详细解析了采样率、增益、转换模式等核心寄存器的设置方法,并分享了数据读取、高级功能配置及常见问题的调试心得,帮助开发者快速掌握ADS1299的配置技巧,实现稳定的ECG/EEG信号采集。

weixin_28278377的博客 194

剑指offer【32】:层序遍历打印二叉树

题目: 思路+代码: import queue class Solution: def levelOrder(self, root: TreeNode) -> List[int]: # 思路:使用栈保存每层从左至右的左节点和右节点,一个list保存层序遍历节点的值; # 用list实现 if not root:return [] res, node_list = [],[] node_list..

咕噜咕噜 310

集群路径规划实战(一)之EGO-swarm环境搭建与调试

本文详细介绍了EGO-swarm分布式无人机集群运动规划系统的仿真环境搭建与调试全流程。内容涵盖ROS Melodic安装、代码获取、依赖库配置、编译问题解决(如multi_map_server头文件缺失)以及最终通过roslaunch启动集群仿真与Rviz可视化,为学习和研究集群路径规划算法提供了可运行的实战平台。

weixin_29243279的博客 250

剑指Offer--层序遍历二叉树

题目:层序遍历二叉树,即从上往下打印二叉树,每层从左往右;解析:这道题目并不难,只是比较常用的一个问题,因为树形结构的多种遍历方法,我想以后会有很多使用的机会,所以借此收藏一下。以下的实现方法也是最常用的一种,就是用一个队列来存储每一层的节点,然后输出,完成层序遍历。因为队列的特点是先进先出,所以父节点会比子节点先进队列,也好久先输出父节点import java.util.*; /** public

devY的博客 447

功率半导体器件选型指南:从GTO、GTR到MOSFET、IGBT的原理与应用

功率半导体器件是电力电子系统的核心,如同电路中的智能开关,负责电能的转换与控制。其工作原理基于半导体材料的导电特性,通过控制信号精确管理电路的通断。这类器件的技术价值在于提升能效、减小体积并增强系统可靠性,广泛应用于变频器、逆变器、开关电源及新能源领域。理解不同器件如MOSFET的雪崩能量与IGBT的损耗计算,是进行高效、可靠电路设计的基础。本文聚焦于GTO、GTR、MOSFET和IGBT这四类经典全控型器件的特性对比与选型策略,帮助工程师在具体项目中做出经济可靠的选择。

cumo7370的博客 447

【C++PTA】6-1 Point类的运算 (10 分)

定义Point类,有坐标x,y两个私有成员变量;对Point类重载“+”(相加)、“-”(相减)和“==”(相等)运算符,实现对坐标的改变,要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p; cout<<p<<endl;可以输出该点对象的坐标。 函数接口定义: 实现Point类。 裁判测试程序样例: /* 请在这里填写答案 */ int main(int argc, char const *argv[]) { P

libertye的博客 2367

【面试题】二叉树的层序遍历

题目:实现一颗二叉树的层序遍历,树的结点定义如下: template&lt;class T&gt; struct BinTreeNode { BinTreeNode(const T&amp; data) :_pLeft(NULL) ,_pRight(NULL) ,_data(data) {} BinTreeNode&lt;T&gt;* _pLeft; BinTreeNode&lt...

yaotengjian的博客 527

向量数据库安全实战:从Embedding反推到检索越权的全链路防护

随着RAG应用在企业中的普及,向量数据库已成为知识库系统的核心组件。但许多团队对向量数据的安全认知仍停留在传统数据库的账号密码、网络隔离和磁盘加密上。事实上,向量化并非加密,而是一种有损压缩的语义映射,向量本身可以被反推模型还原出原文关键信息,形成高保真的语义泄露通道。同时,相似度检索的模糊匹配特性打破了传统行列权限模型,使得越权检索和成员推断攻击成为新的安全威胁。理解这些原理,有助于企业在数据采集、向量化、索引构建、检索查询等环节构建分层防护体系,包括脱敏、扰动、过滤下推、网关控制等手段。本文从基础概念出

weixin_29323551的博客 259

程序包org.apache.commons.fileupload不存在

程序包org.apache.commons.fileupload不存在 1.问题描述 程序运行报错: Error:(7, 1) java: 程序包org.apache.commons.fileupload不存在 Error:(8, 1) java: 程序包org.apache.commons.fileupload.servlet不存在 Error:(9, 1) java: 程序包org.ap...

AlwaySimple的博客 3万+

一文吃透 SAP HANA SDA:把分散数据当作本地数据来用的那把钥匙

摘要:SAP HANA SDA(Smart Data Access)技术详解:150字精要 SAP HANA SDA是一种数据虚拟化技术,允许在不复制数据的情况下访问远端数据源。核心功能包括: 通过Remote Source定义连接配置 创建Virtual Table作为本地代理 支持谓词下推优化查询性能 与SDI技术协同工作扩展数据集成能力 典型应用场景包括: 跨系统联邦查询 冷热数据分层管理 混合云数据整合 远程表复制(RTR)实现近实时数据同步 实施要点: 需关注适配器能力差异 合理运用查询下推优化

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 321

详解Xilinx FPGA高速串行收发器GTX/GTP(6)--Pattern Generator/Pattern Checker

详解Xilinx FPGA高速串行收发器GTX/GTP(6)--Pattern Generator/Pattern Checker

孤独的单刀 1625

剑指offer 二叉树的层序遍历

二叉树的层序遍历 利用队列来做 import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; ...

零分的博客 217

【Matlab】matlab代码实现sph溃坝模拟

本文介绍了一个基于MATLAB的SPH溃坝模拟实现。代码使用平滑粒子流体动力学方法,通过建立1000个随机分布的粒子,计算粒子间的相互作用力来模拟流体运动。模拟过程包括初始化参数、粒子创建、密度压力更新、速度位置计算以及可视化展示。核心算法采用poly6Kernel和spikyKernelGradient函数处理粒子间作用力。该示例为二维简化模型,仅包含基本物理参数和计算流程,实际应用需进一步优化扩展。

unber的博客 207

【剑指offer】从上向下打印二叉树

版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.youkuaiyun.com/mmc_maodun/article/details/26089165 转载请注明出处...

weixin_30627381的博客 59

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

剑指 Offer 32 - I.II.III. 从上到下打印二叉树(层序遍历)

剑指 Offer 32 - I. 从上到下打印二叉树 问题描述 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3,9,20,15,7] 提示: 节点总数 <= 1000 解题思路 很容易想到的思路就是基础的层序遍历。只是一般的层序遍历迭代法是使用List<List<Integ...

张某某。的博客 161

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

剑指offer—二叉树的层序遍历

题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 解题思想:解决此问题需要借助一个队列来完成 前置条件:先将root入队列 ①出一个节点 ②访问该节点,将该节点的节点值添加到顺序表中 ③将当前节点的左子树入队列,再将右子树入队列(注意判空) 代码如下: public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<In

Amanda_wr的博客 272

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Leetcode剑指Offer刷题 - 第六天

面试题32 - I. 从上到下打印二叉树 解法:层序遍历二叉树 BFS /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int[] levelOrd

DEGv587的博客 627

剑指 Offer 32 - 二叉树的层序遍历

题目要求的二叉树的从上至下打印(即按层打印),又称为二叉树的广度优先搜索(BFS)。BFS通常借助队列的先入先出特性来实现。

庄小焱 350

剑指Offer:从上往下打印二叉树(层序遍历java版)

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 利用队列FIFO特性 创建一个队列,然后依次添加左、右子节点。从队列中取的时候,就相当于在每一层从左到右的取节点 import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNod...

Cannon的博客 875

剑指Offer-层序遍历二叉树

题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路:利用队列辅助实现。 public void PrintFromTopToBottom(TreeNode root) { if(root == null) { System.out.println("null"); } Queue<TreeNode> queue = new <TreeNode> LinkedList(); queue.offer(root); while(!queue.

weixin_37990128的博客 154

剑指offer-二叉树层序遍历

1.从上到下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印 题目链接:力扣 算法流程: 1)特例处理:当树的根节点为空,则直接返回空列表 [ ] ; 2) 初始化:打印结果列表 res = [ ],包含根节点的队列 queue = [root]; 3)BFS循环:当队列queue为空时跳出; a.出队:队首元素出队,记为node; b.打印:将node.val添加至列表tmp尾部; c.添加子节点:若node 的左(右)子节点不为空,...

m0_51608959的博客 533

剑指Offer21 二叉树的层序遍历

1 /************************************************************************* 2 > File Name: 21_PrintTreeTopToBottom.cpp 3 > Author: Juntaran 4 > Mail: JuntaranMail@g...

dingrong3926的博客 125

S型 / 层序遍历二叉树_剑指offer

package offer; import java.util.ArrayList; import java.util.List; import java.util.Queue; import java.util.Stack; import java.util.concurrent.ArrayBlockingQueue; public class Day0324_demo02 { ...

JZWen 1187

【剑指Offer刷题系列】从上到下打印二叉树

通过上述方法,我们可以高效地按照从左到右的顺序返回二叉树每一层的彩灯编号。层序遍历利用队列的数据结构,实现了按层次顺序访问节点的需求,适用于各种形态的二叉树结构。(也称广度优先搜索,BFS),并按照从左到右的顺序返回每一层的节点值。层序遍历是二叉树遍历中常见的一种方式,适用于按层次处理树结构的数据。的二叉树,节点值为该位置装饰彩灯的颜色编号。按照从左到右的层序遍历,依次访问节点。的顺序返回每一层彩灯编号。一棵圣诞树记作根节点为。本题要求对二叉树进行。

weixin_44329069的博客 1016

剑指offer 层序遍历二叉树

从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。 数据范围 树中节点的数量[0,1000][0,1000]。 样例 输入如下图所示二叉树[8, 12, 2, null, null, 6, null, 4, null, null, null] 8 / \ 12 2 / 6 / 4 输出:[8, 12, 2, 6, 4] /** * Definition for a binary tree node. * struct T.

qq_64128135的博客 142

《剑指Offer》Java刷题 NO.60 把二叉树打印成多行(二叉树,队列,BFS层序遍历)

《剑指Offer》Java刷题 NO.60 把二叉树打印成多行(二叉树,队列,BFS层序遍历) 传送门:《剑指Offer刷题总目录》 时间:2020-07-16 题目: 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思路: 前面有道之字形打印的题:NO.59 按之字形顺序打印二叉树(二叉树,BFS,queue&stack) 这道就是完全的BFS了,套用模板利用队列即可。 Java代码: public ArrayList<ArrayList<Integer>

qq_39618369的博客 219
上一篇: 【剑指offer】 --- 和为S的两个数
下一篇: 【剑指offer】--- 二叉树的深度
Beat_Boxer
博客等级 码龄9年 18粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值