[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;}
};

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类与对象-对象特性

师从黑马程序员 对象的初始化和清理 构造函数和析构函数 用于完成对象的初始化和清理工作 如果我们不提供构造和析构&#xff0c;编译器会提供编译器提供的构造函数和析构函数是空实现 构造函数&#xff1a;主要用于创建对象时为对象的成员属性赋值&#xff0c;构造函数由编…

如何获取用户请求的真实ip,并返回访问者的ip地理位置?node,vue

一、获取真实IP 方式1、前端调用免费公共接口获取 前端获取访问者的真实的外网ip,可以通过调用接口https://api.ipify.org/来获取。你也可以直接在网页上访问它来看自己的外网ip。 ipify介绍&#xff1a; ipify是一个免费的公共 API&#xff0c;用于获取设备的公共 IP 地址。…

杨辉三角(C语言)

杨辉三角 一.什么是杨辉三角 一.什么是杨辉三角 每个数等于它上方两数之和。 每行数字左右对称&#xff0c;由1开始逐渐变大。 第n行的数字有n项。 前n行共[(1n)n]/2 个数。 … 当前行的数上一行的数上一行的前一列的数 void yanghuisanjian(int arr[][20], int n) {for (int i…

简历--毕业论文

文章目录 MPLS VPN网络的设计与实施一、研究背景和意义二、研究内容2.1网络设计2.1.1 MPLS VPN配置思路2.1.2基本配置2.1.3 实验结果 三、结论其他 MPLS VPN网络的设计与实施 摘 要&#xff1a;本文选择研究对象是cisco的MPLS VPN网络&#xff0c;具有经济适用&#xff0c;扩展…

6. Gin集成redis

文章目录 一&#xff1a;连接Redis二&#xff1a;基本使用三&#xff1a;字符串四&#xff1a;列表五&#xff1a;哈希六&#xff1a;Set七&#xff1a;管道八、事务九&#xff1a;示例 代码地址&#xff1a;https://gitee.com/lymgoforIT/golang-trick/tree/master/14-go-redi…

【Leetcode】299. 猜数字游戏

文章目录 题目思路代码结果 题目 题目链接 你在和朋友一起玩 猜数字&#xff08;Bulls and Cows&#xff09;游戏&#xff0c;该游戏规则如下&#xff1a; 写出一个秘密数字&#xff0c;并请朋友猜这个数字是多少。朋友每猜测一次&#xff0c;你就会给他一个包含下述信息的提…

Python Web应用程序构建的最佳实践:代码实例与深度解析【第122篇—装饰器详解】

Python Web应用程序构建的最佳实践&#xff1a;代码实例与深度解析 在当今数字时代&#xff0c;构建高效、可扩展的Web应用程序是开发者们的一项重要任务。Python&#xff0c;作为一种简洁、强大的编程语言&#xff0c;为Web开发提供了丰富的工具和框架。在本篇文章中&#xff…

【前端】空间转换与动画

目录 1.空间转换 1.1位移 1.2旋转 1.3立体呈现 1.4缩放 2.动画 1.空间转换 空间&#xff1a;是从坐标轴角度定义的&#xff0c;x&#xff0c;y&#xff0c;z三条坐标轴构成了一个立体空间&#xff0c;z轴位置与视线方向相同 空间转换也叫3D转换&#xff0c;实现元素在空间…

第89篇:方程式工具包远程溢出漏洞图形界面版V0.3(内置永恒之蓝、永恒冠军、永恒浪漫等)...

Part1 前言 大家好&#xff0c;我是ABC_123。我从年前到现在&#xff0c;一直在整理曾经写过的红队工具&#xff0c;逐步把自己认为比较好用的原创工具发出来给大家用一用&#xff0c;方便大家在日常的攻防比赛、红队评估项目中解放双手&#xff0c;节省时间精力和体力。本期给…

Java中常用的集合及方法(2)

在Java&#xff08;JDK8&#xff09;中&#xff0c;集合&#xff08;Collection&#xff09;是数据结构的实现&#xff0c;用于存储和操作对象集合。 集合&#xff08;Collection&#xff09;中包含的一般类或接口&#xff1a; 在这其中呢&#xff0c;我们经常使用的其实就是L…

【经管数据-更新】华证ESG评级得分数据(2009-2023年)

一、数据说明 参考《经济研究》中方先明&#xff08;2023&#xff09;的做法&#xff0c;将华证ESG评级进行赋值&#xff0c;指标包含C、CC、CCC、B、BB、BBB、A、AA、AAA共9个等级&#xff0c;将上市公司ESG 等级从低到高分别赋值为1至9 二、数据来源&#xff1a;世界银行&am…

PCB检测,基于YOLOV8NANO

PCB检测&#xff0c;基于YOLOV8NANO&#xff0c;训练得到PT模型&#xff0c;转换成ONNX&#xff0c;只需要OPENCV&#xff0c;支持C/PYTHON/ANDROID开发PCB检测&#xff0c;基于YOLOV8NANO&#xff0c;只需要OPENCV