当前位置:网站首页>leetcode刷题:二叉树04(二叉树的层序遍历)
leetcode刷题:二叉树04(二叉树的层序遍历)
2022-07-04 03:51:00 【涛涛英语学不进去】
102.二叉树的层序遍历
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

乍一看挺复杂,仔细做一下,一招秒。
package com.programmercarl.tree;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.List;
/** * @ClassName LevelOrder * @Descriotion TODO * @Author nitaotao * @Date 2022/7/3 11:55 * @Version 1.0 * https://leetcode.cn/problems/binary-tree-level-order-traversal/ * 102. 二叉树的层序遍历 **/
public class LevelOrder {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
Deque<TreeNode> deque = new ArrayDeque();
if (root == null) {
return result;
}
//入队
deque.offer(root);
while (!deque.isEmpty()) {
int size=deque.size();
List<Integer> floor = new ArrayList();
while (size > 0) {
//每次遍历一层
TreeNode node = deque.poll();
floor.add(node.val);
if (node.left != null) {
deque.offer(node.left);
}
if (node.right != null) {
deque.offer(node.right);
}
size--;
}
result.add(floor);
}
return result;
}
}
层序遍历,大 list
包小 list 。 每个小 list 为一层。
一层一层来,记录当前队列的长度,就是上一层有多少元素,这次就弹出多少次,把新元素继续加在队列尾部即可。
看了一下题解,我的属于广度优先遍历,还有深度优先遍历。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */
class Solution {
public List<List<Integer>> resList = new ArrayList<List<Integer>>();
public List<List<Integer>> levelOrder(TreeNode root) {
checkFun01(root, 0);
return resList;
}
public void checkFun01(TreeNode node, Integer deep) {
if (node == null) {
return;
}
deep++;
if (resList.size() < deep) {
//当层级增加时,list的Item也增加,利用List的索引值进行层级结点
List<Integer> item = new ArrayList<>();
resList.add(item);
}
resList.get(deep - 1).add(node.val);
checkFun01(node.left, deep);
checkFun01(node.right, deep);
}
}

有一说一我看到不太懂,有点像先准备一个 List ,然后深度优先遍历,把结果按层序遍历的索引放上去。
边栏推荐
- Select sorting and bubble sorting template
- Unity 绘制弹球和台球的运动轨迹
- MySQL maxscale realizes read-write separation
- ctf-pikachu-XSS
- 用于TCP协议交互的TCPClientDemo
- AAAI2022 | Word Embeddings via Causal Inference: Gender Bias Reducing and Semantic Information Preserving
- Detailed explanation of PPTC self recovery fuse
- 1289_ Implementation analysis of vtask suspend() interface in FreeRTOS
- Pandora IOT development board learning (HAL Library) - Experiment 6 independent watchdog experiment (learning notes)
- 2022-07-03:数组里有0和1,一定要翻转一个区间,翻转:0变1,1变0。 请问翻转后可以使得1的个数最多是多少? 来自小红书。3.13笔试。
猜你喜欢

Getting started with the go language is simple: go implements the Caesar password

Exercices de renforcement des déclarations SQL (MySQL 8.0 par exemple)

拼夕夕二面:说说布隆过滤器与布谷鸟过滤器?应用场景?我懵了。。

The three-year revenue is 3.531 billion, and this Jiangxi old watch is going to IPO

Global exposure and roller shutter exposure of industrial cameras

Two sides of the evening: tell me about the bloom filter and cuckoo filter? Application scenario? I'm confused..

【罗技】m720
![Cesiumjs 2022^ source code interpretation [0] - article directory and source code engineering structure](/img/ba/c1d40de154344ccc9f2fd1dd4cb12f.png)
Cesiumjs 2022^ source code interpretation [0] - article directory and source code engineering structure

laravel admin里百度编辑器自定义路径和文件名

The difference between bagging and boosting in machine learning
随机推荐
拼夕夕二面:说说布隆过滤器与布谷鸟过滤器?应用场景?我懵了。。
干货!基于GAN的稀有样本生成
Objective-C description method and type method
“软硬皆施”,助力建成新型云计算数据中心
渗透实战-guest账户-mimikatz-向日葵-sql提权-离线解密
Objective-C member variable permissions
[Logitech] m720
数据库SQL语句汇总,持续更新......
Objective-C string class, array class
[untitled]
【CSRF-01】跨站请求伪造漏洞基础原理及攻防
【微服务|openfeign】使用openfeign远程调用文件上传接口
深入浅出对话系统——使用Transformer进行文本分类
Three years of graduation, half a year of distance | community essay solicitation
如何远程办公更有效率 | 社区征文
[paddleseg source code reading] paddleseg calculates Miou
三菱M70宏变量读取三菱M80公共变量采集三菱CNC变量读取采集三菱CNC远程刀补三菱机床在线刀补三菱数控在线测量
Unity移动端游戏性能优化简谱之 画面表现与GPU压力的权衡
Brief explanation of depth first search (with basic questions)
[Yugong series] go teaching course 002 go language environment installation in July 2022
