[LeetCode][LCR149]彩灯装饰记录 I——二叉树的层序遍历

题目

LCR 149. 彩灯装饰记录 I

给定一棵圣诞树,记作根节点为 root 的二叉树,节点值为该位置装饰彩灯的颜色编号。按照从左到右的顺序返回每一层彩灯编号。

示例 1:
在这里插入图片描述
输入:root = [8,17,21,18,null,null,6] 输出:[8,17,21,18,6]

提示: 节点总数 <= 1000

思考

  • 本题是二叉树的层序遍历
  • 要点是如何保存每一层中节点从左到右的相对顺序以及从上到下的相对顺序
  • 观察示例,发现正确的输出就满足了这个要点:[8,17,21,18,6] 从左到右遍历就是正确的顺序
  • 那么如何得到这个序列呢?我们需要按这样的顺序保存节点
  • 每个节点只能访问到其左右子节点,但是将每个节点的左右子节点放入列表后,不同节点的左右子节点就可以按顺序访问了,也就是使他们产生了联系

解法:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
    queue<TreeNode*> layerSeq;//层间顺序,从左到右
    vector<int> ans;
public:
    vector<int> decorateRecord(TreeNode* root) {
        if(!root) return ans;
        layerSeq.push(root);
        while(!layerSeq.empty()){
            ans.push_back(layerSeq.front()->val);
            if(layerSeq.front()->left) layerSeq.push(layerSeq.front()->left);
            if(layerSeq.front()->right) layerSeq.push(layerSeq.front()->right);
            layerSeq.pop();
        }
        return ans;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python-Docx库】Word与Python的完美结合

今天给大家分享Python处理Word的第三方库&#xff1a;Python-Docx。 什么是Python-Docx&#xff1f; Python-Docx是用于创建和更新Microsoft Word&#xff08;.docx&#xff09;文件的Python库。 日常需要经常处理Word文档&#xff0c;用Python的免费第三方包&#xff1a;Pyt…

Vue3学习记录(六)--- 组合式API之依赖注入和异步组件

一、依赖注入 1、简介 ​ 在前面的笔记中&#xff0c;我们学习过父组件向子组件传递数据时&#xff0c;需要借助props来实现。但如果父组件想要向孙子组件传递数据&#xff0c;那就要连续使用两层props逐级向下传递&#xff0c;如果要接收数据的是更深层的后代组件&#xff0…

管理技巧 | 提升团队效能:如何与下属进行有效沟通

在日常的管理工作中&#xff0c;沟通作为一项基础而关键的技能&#xff0c;往往决定了团队的协作效率和目标达成率。作为一个曾经从基层员工一路成长为管理者的Angelia老师&#xff0c;深知沟通的艺术对于激发团队潜力的重要性。本篇文章与大家分享几个关于如何与下属进行有效沟…

Oracle Essbase 多维库导入文件数据步骤操作

第一步&#xff1a; 先确定导入数据的维度数量&#xff08;清楚自己需要导入什么数据和范围&#xff09; 第二步&#xff1a; 设置加载的规则 1.创建规则 2.编辑规则-》打开数据文件 通过数据文件来确定加载规则的加载格式 先查看数据文件格式&#xff1a; 将数据文件导入&…

MySQL执行原理、存储引擎、索引模型简介

1.sql的执行原理 Connectors 连接、支持多种协议&#xff0c;各种语言 Management service 系统管理和控制工具&#xff0c;例如&#xff1a;备份、集群副本管理等 pool 连接池 sql interfaces sql接口-接收命令返回结果 parser 分析解析器&#xff1a;验证 optimizer 优化…

板材的加强筋优化

前言 本示例使用优化模块通过引入加强筋来优化简单板的刚度。 本页讨论 前言应用描述Abaqus建模方法和仿真技术文件参考 应用描述 本示例说明了基于条件的简单支撑平板的加强筋优化。在加强筋优化过程中&#xff0c;壳单元的节点在壳法线的方向上移动&#xff0c;以增加惯性…

StableDiffusion3 官方blog论文研究

博客源地址&#xff1a;Stable Diffusion 3: Research Paper — Stability AI 论文源地址&#xff1a;https://arxiv.org/pdf/2403.03206.pdf Stability.AI 官方发布了Stable diffusion 3.0的论文研究&#xff0c;不过目前大家都沉浸在SORA带来的震撼中&#xff0c;所以这个水…

一. 并行处理与GPU体系架构-并行处理简介

目录 前言0. 简述1. 串行处理与并行处理的区别2. 并行执行3. 容易混淆的几个概念4. 常见的并行处理总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第一章——并行处…

window mysql 安装出现的问题

1.安装到最后时&#xff0c;报错&#xff1a;authentication_string doesnt have a default value 解决办法&#xff1a; 1.不要关掉该页面&#xff0c;点击skip。 然后单击 back 回退到如下界面 2.去掉 Enable Strict Mode。 不要勾选 2. 最后一步&#xff1a;Start Servic…

8.5 Springboot项目实战 Redis缓存热点数据

文章目录 前言一、缓存与数据库一致性二、Repository层 -- Cache Aside模式实操BookRepositoryBookRepositoryImpl2.1 查询2.2 修改2.3 删除2.4 扩展Mapper修改三、Service层调用修改四、测试前言 前两文我们讲解了如何在SpringBoot中整合Redis,接下来我们将进行

Spring学习笔记(八)基于Spring mvc技术的简单后台登录验证系统

一、需求分析 本项目主要是对用户登录状态的验证&#xff0c;只有登录成功的用户才可以访问系统中的资源。为了保证后台系统的页面不能被客户直接请求访问&#xff0c;本案例中所有的页面都存放在项目的WEB-INF 文件夹下&#xff0c;客户需要访问相关页面时&#xff0c;需要在…

[BJDCTF2020]----EzPHP

文章目录 pass-1pass-2pass-3pass-4pass-5pass-6pass-7 查看题目&#xff0c;右键源代码&#xff0c;发现GFXEIM3YFZYGQ4A&#xff0c;base64解码&#xff1a;1nD3x.php 访问1nD3x.php&#xff0c;代码审计&#xff0c;一步一步分析 <?php highlight_file(__FILE__); error…

HarmonyOS通过 axios发送HTTP请求

我之前的文章 HarmonyOS 发送http网络请求 那么今天 我们就来说说axios 这个第三方工具 想必所有的前端开发者都不会陌生 axios 本身也属于 HTTP请求 所以鸿蒙开发中也支持它 但首先 想在HarmonyOS中 使用第三方工具库 就要先下载安装 ohpm 具体可以参考我的文章 HarmonyOS 下…

【海贼王的数据航海:利用数据结构成为数据海洋的霸主】探究二叉树的奥秘

目录 1 -> 树的概念及结构 1.1 -> 树的概念 1.2 -> 树的相关概念 1.3 -> 树的表示 1.4 -> 树在实际中的运用(表示文件系统的目录树结构) 2 -> 二叉树概念及结构 2.1 -> 二叉树的概念 2.2 -> 现实中的二叉树 2.3 -> 特殊的二叉树 2.4 ->…

SpringBoot项目没有启动按键

问题一&#xff1a; pom文件正常&#xff0c;但是springboot包报红&#xff0c;同时Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found报红 解决办法&#xff1a; 无法识别使用哪个版本的 spring-boot-maven-plugin 包 <build><plugins>&…

【深度学习笔记】7_2 梯度下降和随机梯度下降

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 7.2 梯度下降和随机梯度下降 在本节中&#xff0c;我们将介绍梯度下降&#xff08;gradient descent&#xff09;的工作原理。虽然梯度…

2024年【G2电站锅炉司炉】考试题及G2电站锅炉司炉证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【G2电站锅炉司炉】考试题及G2电站锅炉司炉证考试&#xff0c;包含G2电站锅炉司炉考试题答案和解析及G2电站锅炉司炉证考试练习。安全生产模拟考试一点通结合国家G2电站锅炉司炉考试最新大纲及G2电站锅炉司炉考…

std::function模板类性能问题

背景 题目&#xff1a;最近发现记忆化搜索真的很好用&#xff0c;于是在做力扣上记忆化搜索相关的题目时&#xff0c;用这种方法重做了一下买卖股票问题。 问题来源 在写递归代码的时候&#xff0c;我学习了一种匿名函数的写法&#xff0c;直接在函数体内写function<int(…

Learn OpenGL 06 坐标系统

概述 局部坐标是对象相对于局部原点的坐标&#xff0c;也是物体起始的坐标。下一步是将局部坐标变换为世界空间坐标&#xff0c;世界空间坐标是处于一个更大的空间范围的。这些坐标相对于世界的全局原点&#xff0c;它们会和其它物体一起相对于世界的原点进行摆放。接下来我们…

Java - 探究Java优雅退出的两种机制

文章目录 概述Java优雅停机_ ShutdownHook 机制步骤Code Java优雅停机_ 信号量机制SignalHandler 工作原理使用步骤Linux支持的信号量根据操作系统选择信号量Code 注意事项 概述 在Linux上通过kill -9 pid方式强制终止进程的副作用&#xff0c;这种方式虽然简单高效&#xff0…