【力扣题解】P102-二叉树的层序遍历-Java题解

👨‍💻博客主页:@花无缺

欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

本文由 花无缺 原创

收录于专栏 【力扣题解】


文章目录


【力扣题解】P102-二叉树的层序遍历-Java题解

P102.二叉树的层序遍历

🌏题目描述

给你二叉树的根节点 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

💡题解

迭代法

java 复制代码
public List<List<Integer>> levelOrder(TreeNode root) {
    List<List<Integer>> res = new ArrayList<>();
    // 树空, 返回空列表
    if (root == null) {
        return res;
    }
    Queue<TreeNode> queue = new LinkedList<>();
    // 根节点先进队
    queue.offer(root);
    while (!queue.isEmpty()) {
        List<Integer> list = new ArrayList<>();
        // 获取当前层的节点数
        int length = queue.size();
        // 遍历当前层, 并将所有节点值加入 list 中
        while (length > 0) {
            // 队头节点出队
            TreeNode node = queue.poll();
            list.add(node.val);
            // 出队之后左子树节点入队
            if (node.left != null) {
                queue.offer(node.left);
            }
            // 右子树节点入队
            if (node.right != null) {
                queue.offer(node.right);
            }
            length--;
        }
        // 遍历完当前层后, 将当前层的所有节点值放入 res
        res.add(list);
    }
    return res;
}

🌏总结

二叉树的层序遍历是一个和前中后序遍历同样重要的一种遍历方式,通过层序遍历我们可以很方便的解决很多关于二叉树的问题。那么我们怎么实现二叉树的层序遍历呢,答案是借助队列,借助队列先进先出的特性我们可以将二叉树的每一层的节点依次进队,然后出队时将其左右子树再进队,这样就可以达到对二叉树进行每一层单独遍历的效果。

作者:花无缺(huawuque404.com)


🌸欢迎关注我的博客:花无缺-每一个不曾起舞的日子都是对生命的辜负~

🍻一起进步-刷题专栏:【力扣题解】

🥇往期精彩好文:

📢【CSS选择器全解指南】

📢【HTML万字详解】

你们的点赞👍 收藏⭐ 留言📝 关注✅

是我持续创作,输出优质内容的最大动力!

谢谢!

相关推荐
CUIYD_19896 分钟前
Eclipse 常用搜索功能汇总
java·ide·eclipse
YuTaoShao41 分钟前
【LeetCode 每日一题】1277. 统计全为 1 的正方形子矩阵
算法·leetcode·矩阵
古译汉书1 小时前
嵌入式铁头山羊stm32-ADC实现定时器触发的注入序列的单通道转换-Day26
开发语言·数据结构·stm32·单片机·嵌入式硬件·算法
野犬寒鸦1 小时前
力扣hot100:相交链表与反转链表详细思路讲解(160,206)
java·数据结构·后端·算法·leetcode
阿昭L1 小时前
leetcode两数之和
算法·leetcode
周树皮不皮1 小时前
【Leetcode100】算法模板之二叉树
算法
无名客01 小时前
sentinel限流常见的几种算法以及优缺点
算法·sentinel·限流
Lris-KK2 小时前
【Leetcode】高频SQL基础题--1164.指定日期的产品价格
sql·leetcode
GalaxyPokemon2 小时前
LeetCode - 1089. 复写零
数据结构
ytadpole2 小时前
揭秘设计模式:工厂模式的五级进化之路
java·设计模式