【力扣题解】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万字详解】

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

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

谢谢!

相关推荐
superior tigre1 分钟前
45 跳跃游戏2
算法·leetcode·游戏
SamDeepThinking12 分钟前
适合中小型企业的出口入口网关微服务
java·后端·架构
不知名的忻12 分钟前
并查集(QuickUnion)
java·数据结构·算法·并查集
leo__52015 分钟前
基于时延的麦克风声源定位 - C实现
c语言·开发语言·算法
攻防_SRC16 分钟前
面向分组密码差分故障分析的属性推导与验证平台
人工智能·算法·机器学习
likerhood20 分钟前
Java实现选择题选项乱序算法
java·开发语言·算法
我登哥MVP26 分钟前
【SpringMVC笔记】 - 11 - SpringMVC 执行流程
java·spring boot·笔记·spring·tomcat·intellij-idea
小鱼~~28 分钟前
最小二乘&均方误差MSE&平均绝对误差MAE
python·算法·机器学习
数智化精益手记局30 分钟前
仓库安灯管理系统的异常响应机制:破解仓库安灯管理系统的跨部门协同难题
大数据·数据结构·人工智能·制造·精益工程
田梓燊40 分钟前
力扣:138.随机链表的复制
算法·leetcode·链表