当前位置: 首页 > news >正文

每日一练:二叉树的层序遍历

102. 二叉树的层序遍历 - 力扣(LeetCode)

一、题目要求

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

二、解法1-队列 O(N)

        队列是一种先进先出的容器,本题需要使用两个队列,q1用来操作当前层的节点,节点存在就把值放到ret中,然后把这个节点的左右节点按顺序放在q2中,该节点出队列;节点为空就直接出队列,操作下一个节点。

class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> ret;queue<TreeNode*> q1;queue<TreeNode*> q2;q2.push(root);while (!q2.empty()) {swap(q1,q2); // q1得到下一层节点queue<TreeNode*>().swap(q2); // 清空q2,存放下下层节点vector<int> level; // 存放这一层节点的值while (!q1.empty()) {if (q1.front()) {level.push_back(q1.front()->val);q2.push(q1.front()->left);q2.push(q1.front()->right);}q1.pop();}if (!level.empty())ret.push_back(level);}return ret;}
};


http://www.mrgr.cn/news/35499.html

相关文章:

  • 国产系统给在线的Word文件创建表格
  • Django 2024全栈开发指南(二):Django项目配置详解
  • [智能车摄像头是一种安装在汽车上用于辅助驾驶和提高安全性的重要设备]
  • uniapp使用scroll-view下拉刷新与上滑加载
  • 猫头虎分享: 小米大模型升级第二代MiLM2:从一代到二代,能力飞跃提升
  • vue计算属性 初步使用案例
  • 并发编程。
  • 【学习复盘】相关资料
  • QT 自定义可拖动缩放的无边框窗口,可用于mainmindow, widget
  • WebGL性能分析与优化
  • 24/9/24 算法笔记 超参数优化算法
  • QT客户端发送HTTP请求此时服务器到底收到了哪些数据?
  • 解决Mac 默认设置 wps不能双面打印的问题
  • yum库 docker的小白安装教程(附部分问题及其解决方案)
  • 翻译:openmax文档
  • 从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之一:生产环境与目标服务器详情
  • 今日指数项目之大盘指数功能实现
  • 每日算法1(快慢指针)
  • nginx如何拦截未经授权的跳转
  • BUUCTF [SCTF2019]电单车详解两种方法(python实现绝对原创)
  • Codeforces Global Round 19 D题 Yet Another Minimization Problem(推式子,01背包变形)
  • 模拟哈希表
  • LVGL第一篇-了解lvgl显示原理以及使用C++移植
  • Zookeeper
  • BERT训练环节(代码实现)
  • Seata分布式事务实践