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

目录

题目描述:

代码:

第一种:

第二种:

TreeNode:

LinkedListNode:


题目描述:

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

示例 1:

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

示例 2:

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

示例 3:

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

代码:

第一种:

    LinkedListQueue<TreeNode> queue = new LinkedListQueue<TreeNode>();queue.offer(root);int c1=1;//当前的节点数while(!queue.isEmpty()){int c2=0;for(int i=0;i<c1;i++){TreeNode n=queue.poll();System.out.print(n+" ");if(n.left!=null){queue.offer(n.left);c2++;}if(n.right!=null){queue.offer(n.right);c2++;}}System.out.println();c1=c2;}

第二种:

 public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer> > res = new ArrayList<>();if(root==null) return res;LinkedListQueue<TreeNode> queue = new LinkedListQueue<TreeNode>();queue.offer(root);int c1=1;//当前的节点数while(!queue.isEmpty()){List<Integer> level=new ArrayList<>();int c2=0;for(int i=0;i<c1;i++){TreeNode n=queue.poll();level.add(n.val);if(n.left!=null){queue.offer(n.left);c2++;}if(n.right!=null){queue.offer(n.right);c2++;}}res.add(level);c1=c2;}return res;}

TreeNode:

package TreeNode;public class TreeNode {public int val;public TreeNode left;public TreeNode right;public TreeNode(int val){this.val = val;}public TreeNode( TreeNode left,int val, TreeNode right){this.val = val;this.left = left;this.right = right;}public String toString(){return String.valueOf(val);}}

LinkedListNode:

public class LinkedListQueue <E> implements Queue<E>, Iterable<E>{//单向环形哨兵链表//节点类private static class Node<E>{E value;Node<E> next;Node(E value, Node<E> next){this.value=value;this.next=next;}}Node<E> head=new Node<>(null,null);Node<E> tail=head;//tail指向头private int size=0;//节点数private int capacity=Integer.MIN_VALUE;//容量public LinkedListQueue(){tail.next=head;}public LinkedListQueue(int capacity){this.capacity=capacity;tail.next=head;}//从队尾插入@Overridepublic boolean offer(E value) {if(isFull()){return false;}Node<E> added= new Node<>(value,head);//added新节点尾部指向头tail.next=added;//原来的尾部指向新节点tail=added;//尾部指向新节点size++;return true;}//获取队列的第一个值,并移除@Overridepublic E poll() {if(isEmpty()){return null;}E value=head.next.value;Node<E> first=head.next;head.next=first.next;size--;if(first==tail){tail=head;}return value;}//从对头获取值,但不移除@Overridepublic E peek() {if(isEmpty()){return null;}return head.next.value;}@Overridepublic boolean isEmpty() {return head==tail;}@Overridepublic boolean isFull() {return size==capacity;}@Overridepublic Iterator<E> iterator() {return new Iterator<E>(){Node<E> p=head.next;public boolean hasNext() {//p==head退出return p!=head;}public E next(){E value=p.value;p=p.next;return value;}};}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/9540.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

R语言实战——一些批量对地理数据进行操作的方法

各位朋友在进行数据处理时&#xff0c;当有多张栅格影像时&#xff0c;如果我们都要进行同一操作时&#xff0c;一张一张做很繁琐&#xff0c;用ArcGIS模型构建器是一种比较好的方法。当然&#xff0c;今天小编新学了R语言上面进行批量裁剪&#xff0c;一起来学习一下吧&#x…

TEMU测评:在挑战与机遇中寻求突破

近年来&#xff0c;TEMU&#xff08;由拼多多推出的海外电商平台&#xff09;在全球范围内迅速崛起&#xff0c;特别是在美国市场&#xff0c;其以极具竞争力的价格和丰富的商品种类吸引了大量海外消费者。然而&#xff0c;随着市场竞争的加剧和外部环境的变化&#xff0c;TEMU…

BIM 地铁站智能可视化应用

运用图扑数字孪生结合建筑信息建模&#xff08;BIM&#xff09;技术&#xff0c;提供地铁站结构和设施的全方位三维可视化展示。支持施工方案优化、进度管理及协同操作&#xff0c;提高设计精度和施工效率&#xff0c;保障地铁项目的全生命周期管理。

C++研发笔记12——C语言程序设计初阶学习笔记10

本篇笔记是一篇练习文章&#xff0c;是对第二部分《初识C语言》的一个回顾&#xff0c;从而结束第二部分的学习。 题目一 关于C语言关键字说法正确的是&#xff1a;( ) A.关键字可以自己创建 B.关键字不能自己创建 C.关键字可以做变量名 D.typedef不是关键字 【参考答案…

【论文笔记】SparseRadNet: Sparse Perception Neural Network on Subsampled Radar Data

原文链接&#xff1a;https://arxiv.org/abs/2406.10600 简介&#xff1a;本文引入自适应子采样方法和定制网络&#xff0c;利用稀疏性模式发掘雷达信号中的全局和局部依赖性。本文的子采样模块选择 RD谱中在下游任务贡献最大 像素 的子集。为提高子采样数据的特征提取&#xf…

【IEEE出版|连续5年稳定EI检索|易中稿!近距离交流院士、Fellow!】第六届国际科技创新学术交流大会暨机械工程与自动化国际学术会议(MEA 2024)

第六届国际科技创新学术交流大会暨机械工程与自动化国际学术会议&#xff08;MEA 2024&#xff09; 2024 6th International Conference on Mechanical Engineering and Automation 重要信息 会议官网&#xff1a;mea2024.iaecst.org&#xff08;会议关键词&#xff1a;MEA 2…

计算机图形学论文 | 木工设计与制造计划的共同优化

&#x1f98c;&#x1f98c;&#x1f98c;读论文 我们的系统共同探索离散设计变量和制造计划的空间&#xff0c;以生成&#xff08;设计&#xff0c;制造计划&#xff09;对的帕累托前沿&#xff0c;使制造成本最小化。在该图中&#xff0c;(a)是椅子的输入设计和仅探索该设计的…

Kubernetes-ArgoCD篇-02-安装

1、安装 1.1 Argo CD CLI mac安装&#xff1a; brew install argocd通用安装&#xff1a; # 查看os go env GOOS # 查看架构 go env GOARCHargoCdName"argocd-darwin-arm64" # 此步骤也可以手动下载 wget https://github.com/argoproj/argo-cd/releases/latest/d…

【Ant Design Pro】框架入门的起手式及架构的分析

框架千千万万&#xff0c;换个公司换个样&#xff01;umijs官网地址在这里&#xff0c;都要喊它father!! 作为笔记&#xff0c;了解框架结构。官网地址:Ant Design Pro。 项目环境 node 版本18依赖安装淘宝镜像&#xff0c;npm i大概要2~3分钟&#xff0c;感觉这种框架很重 安…

【数据分享】2024年我国省市县三级的生活服务设施数量(46类设施/Excel/Shp格式)

人才市场、售票处、旅行社等生活服务设施的配置情况是一个城市公共基础设施完善程度的重要体现&#xff0c;一个城市生活服务设施种类越丰富&#xff0c;数量越多&#xff0c;通常能表示这个城市的公共服务水平越高&#xff01; 本次我们为大家带来的是我国各省份、各地级市、…

采用 EtherCAT 的磁场定向控制 (FOC) 伺服运动控制器 IC-TMC8670-BI

这款芯片是小型去中心化机器人的理想解决方案&#xff0c;还十分适合机器人和工业自动化、实验室自动化、工业物联网应用以及嵌入式运动控制系统中的典型编码器&#xff0c;使其更加全能。 TMC8670是用于工业自动化、嵌入式伺服控制和其他自动化设备应用的单轴伺服电机控制器。…

【Melty是一款开源的AI编程助手,基于codellama,媲美cusor】

https://github.com/meltylabs/melty.git 对话进行代码重构

今日力扣:3235. 判断矩形的两个角落是否可达

给你两个正整数 xCorner 和 yCorner 和一个二维整数数组 circles &#xff0c;其中 circles[i] [xi, yi, ri] 表示一个圆心在 (xi, yi) 半径为 ri 的圆。 坐标平面内有一个左下角在原点&#xff0c;右上角在 (xCorner, yCorner) 的矩形。你需要判断是否存在一条从左下角到右上…

HCIP-HarmonyOS Application Developer 习题(二十)

1、&#xff08;判断题&#xff09;在使用 EventHandler 实现线程问通信时如果 EventRurner取出的是InnerEvent事件&#xff0c;则 EventRunner 会直接在新线程上处理该事件。 答案&#xff1a;错误 分析&#xff1a;如果EventRunner取出的事件为InnerEvent事件&#xff0c;则触…

恭喜!2024年度大连市科技人才创新、科技人才创业项目拟立项公示!

精选SCI/SSCI/EI SCI&EI ●IEEE 1区TOP 计算机类&#xff08;含CCF&#xff09;&#xff1b; ●EI快刊&#xff1a;最快1周录用&#xff01; 知网(CNKI)、谷歌学术期刊 ●7天录用-检索&#xff08;100%录用&#xff09;&#xff0c;1周上线&#xff1b; 免费稿件评估 …

CSS3中动画的使用animation

1.基本使用 2.其他属性 3.复合属性

C语言多维数组抽象理解:切格子思维

其实早在两年前我就写过一篇关于多维数组的文章&#xff1a;详解多维数组与指针之间的关系&#xff0c;随着时间的推移&#xff0c;我的工作与学习逐渐深入&#xff0c;对C语言有了更深入的理解&#xff0c;觉得之前写的文章里关于多维数组部分有些复杂&#xff0c;不能以最简单…

超越Axure:探索新一代原型设计工具

Axure RP是一款被广泛认可的快速原型设计工具&#xff0c;专为专业设计师打造&#xff0c;用于创建高效的产品原型图&#xff0c;包括APP和网页的原型图、框架图和结构图等。Axure RP制作的原型图能够实现与实际APP相似的交互效果&#xff0c;便于向用户或客户展示&#xff0c;…

PVE纵览-从零开始:了解Proxmox Virtual Environment

PVE纵览-从零开始&#xff1a;了解Proxmox Virtual Environment 文章目录 PVE纵览-从零开始&#xff1a;了解Proxmox Virtual Environment摘要引言什么是Proxmox Virtual EnvironmentPVE的核心功能PVE 优势如何开始使用PVEPVE应用案例总结 关键字&#xff1a; PVE、 虚拟机、…

装杯 之 Linux指令【补充篇】

“生活就像海洋&#xff0c;只有意志坚强的人&#xff0c;才能到达彼岸” ---马克思 目录 1.grep指令 ​编辑 2.zip/unzip指令 3.tar指令&#xff08;重要&#xff09;&#xff1a;打包/解包&#xff0c;不打开它&#xff0c;直接看内容 4.bc指令 5.uname 指令 1.grep…