【二叉树】Leetcode N 叉树的层序遍历
题目讲解
429. N 叉树的层序遍历

算法讲解
在做层序遍历的时候由于它的每一个结点是有val + vector child组成,所以在做层序遍历的时候需要考虑它每一层结点的个数,那我们就可以使用一个queue保存每一层的结点;那么我们在做第一层的时候,这样很简单,第一层用完怎么做呢?我们在准备第二层结点的时候,就需要将第一层结点提取出来,然后将第一层节点pop出去,现在的时候,第一层的vector ret已经出现的,但是我们queue还是没有处理的,所以在添加当前节点的val之后就需要遍历结点的child vector,将它的下一层结点放到queue中,这样的话,每一层的结点就会出现在queue中
/*
// Definition for a Node.
class Node {
public:int val;vector<Node*> children;Node() {}Node(int _val) {val = _val;}Node(int _val, vector<Node*> _children) {val = _val;children = _children;}
};
*/class Solution {
public:vector<vector<int>> levelOrder(Node* root) {int levesize = 0;queue<Node*>q;vector<vector<int>>ret;if(root == nullptr)return ret;q.push(root);while(!q.empty()){levesize = q.size();vector<int> temp;for(int i = 0; i < levesize; i++){Node* cur = q.front();q.pop();temp.push_back(cur->val);for(Node* child : cur->children){q.push(child);}}ret.push_back(temp);}return ret;}
};
相关文章:
【二叉树】Leetcode N 叉树的层序遍历
题目讲解 429. N 叉树的层序遍历 算法讲解 在做层序遍历的时候由于它的每一个结点是有val vector child组成,所以在做层序遍历的时候需要考虑它每一层结点的个数,那我们就可以使用一个queue保存每一层的结点;那么我们在做第一层的时候&am…...
Spring AI
目录 一、Spring AI 1、Spring AI简介 1.1、四次工业革命发展和变革 1.2、什么是人工智能? 1.3、人工智能的发展历程 1.4、什么是大模型? 1.5、如何训练大模型? 一、Spring AI 1、Spring AI简介 Spring AI Java接入人工智能大模型 1.1、四次工业革命发展和变革 人类…...
fiori SAP ui5 动态改变控件颜色
使用CustomData动态改变控件颜色 有时候我们需要改变控件颜色,对于高度封装的控件,显然改变控件CSS是比较困难的,幸好SAP UI5预设了一个customData的属性,每个控件都能使用她。 如下代码是判断汇率是否有改变,如果改…...
RabbitMQ php amqp
Linux debian 安装 Windows php amqp 扩展 PECL :: Package :: amqp 将 php_amqp.dll 复制到 php 的 ext 目录下 将 rabbitmq.4.dll 复制到 c:\windows\system32 目录下 php.ini extensionamqp...
对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:falses 思路:我刚开始是想着用…...
浅浅总结SQL中的事务.
在现实生活中有很多的线上支付的场景,当支付的时候,一方资金减少,另一方资金增加,在执行前后,两者的总体数额需要相同,为了保证这个操作的完整,所以提出了事务,那我们先来去写一个示例ÿ…...
C++ | Leetcode C++题解之第76题最小覆盖子串
题目: 题解: class Solution { public:unordered_map <char, int> ori, cnt;bool check() {for (const auto &p: ori) {if (cnt[p.first] < p.second) {return false;}}return true;}string minWindow(string s, string t) {for (const au…...
什么可以替代iframe?
网页嵌套中,iframe曾几何时不可一世,没有其他更好的选择! iframe即内联框架,作为网页设计中的一种技术,允许在一个网页内部嵌套另一个独立的HTML文档。尽管它在某些场景下提供了便利,但也存在多方面的缺陷…...
HTTP/1.0、HTTP/1.1、HTTP/2.0区别
文章目录 区别HTTP/1.0HTTP/1.11. 持久连接(长连接)2. 管道化3. Host头字段4. 分块传输编码5. 缓存机制6. 请求方法 HTTP/2.01. 二进制分帧2. 多路复用3. 服务器推送4. 优先级设置5. 头信息压缩6. 安全性7. 流量控制 区别 特性HTTP/1.0HTTP/1.1HTTP/2.0…...
鸿蒙内核源码分析(文件句柄篇) | 你为什么叫句柄
句柄 | handle int open(const char* pathname,int flags); ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count); int close(int fd);只要写过应用程序代码操作过文件不会陌生这几个函数,文件操作的几个关键步骤嘛,跟把大…...
2024.5.8 关于 SpringCloud —— Ribbon 的基本认知
目录 Ribbon 负载均衡原理 工作流程 Ribbon 负载均衡规则 Ribbon 负载均衡自定义化 代码方式修改规则 配置文件方式修改规则 小总结 Ribbon 设定饥饿加载 Ribbon 负载均衡原理 工作流程 order-service 使用 RestTemplate 发送请求,随后该请求将会被 Ribbon 所…...
Lua 协程模拟 Golang 的 go defer 编程模式
封装go函数用于创建并启动一个协程: ---go函数创建并启动一个协程 ---param _co_task function 函数原型 fun(_co:thread) function go(_co_task)local co coroutine.create(_co_task) -- 创建一个暂停的协程coroutine.resume(co, co) -- 调用coroutine.resume激活…...
maven的安装与配置(超详细)
在Java开发中,配置Maven环境有几个重要的原因: 依赖管理:Maven 是一个强大的依赖管理工具,它能够帮助开发人员轻松地管理项目所需的各种第三方库和组件。通过在项目的 Maven 配置文件(pom.xml)中定义依赖&…...
springCloud服务降级使用到的组件
服务降级在Spring Cloud中通常使用的组件包括断路器(Circuit Breaker)和降级处理器(Fallback)。以下是它们的概念表述: 断路器(Circuit Breaker):断路器是一种设计模式,…...
Spring框架学习-详细
文章目录 1. Spring简介1.1 面向接口编程1.2 Spring简介1.3 Spring体系结构 2 Spring IoC - 基于XML2.1 Sping框架部署(IoC)2.2 Spring IoC使用2.3 IoC和DI2.4 DI依赖注入Spring容器通过反射方法实现属性注入有三种方式1. set方法注入2. 构造器注入 2.5 …...
fatal: fetch-pack: invalid index-pack output
解决方案:git clone --depth1 要克隆的git地址 下载最近一次提交的代码 其他分支的内容都不下载 这样整体下载体量就变小了 执行命令:git clone --depth 1 https://gitlab.scm321.com/ufx/xxxx.git...
相机购买指南
佳能1000D 上市时间:2008年6月 简介: 佳能1000D具有1010万有效像素和7点宽区域自动对焦系统。DIGIC III影像处理器的应用使高ISO画质得到提升。小巧的机身和优质的成像质量可以满足初级用户对旅游便携与高画质的要求。使用了DIGIC III影像处理器&#x…...
STM32微秒级别延时--F407--TIM1
基本配置: TIM1挂载在APB2总线上,150MHz经过15分频,得到10MHz计数频率,由于disable了自动重装载,所以只需要看下一次计数值是多少即可。 void TIM1_Delay_us(uint16_t us) //使用阻塞方式进行延时,ARR值不…...
AI图书推荐:杀手级ChatGPT提示词——利用人工智能实现成功与盈利
《杀手级ChatGPT提示词——利用人工智能实现成功与盈利》(Killer ChatGPT Prompts_ Harness the Power of AI for Success and Profit )一书是作者Guy Hart-Davis关于ChatGPT的指南,ChatGPT是OpenAI开发的大语言模型。这本书提供了各种职业角…...
AI时代:低代码与人工智能引领科技创造新时代
随着科技的飞速发展,我们步入了一个崭新的时代——AI时代。在这个时代,低代码和人工智能技术如日中天,成为引领科技创造的新引擎。本文将围绕这一主题,探讨低代码和人工智能如何在各个领域发挥巨大作用,推动科技创造迈…...
Arm SMMUv3_ROOT寄存器架构与颗粒保护机制详解
1. SMMUv3_ROOT寄存器架构解析SMMUv3_ROOT是Arm系统内存管理单元(SMMU)架构中的核心控制模块,负责管理物理内存的访问权限和隔离机制。作为现代SoC中不可或缺的安全组件,它通过一组精心设计的寄存器实现对内存访问的细粒度控制。1.1 寄存器分类与功能矩阵…...
AI CLI Kit:让AI助手生成环境感知的精准命令行指令
1. 项目概述:为什么我们需要一个“懂环境”的AI助手?如果你和我一样,每天有大量时间花在终端里,那你肯定经历过这种场景:你正在Windows的PowerShell里调试一个脚本,转头去问Claude:“怎么批量重…...
STM32F4 SPI DMA实战:用CubeMX和HAL库5分钟搞定高速数据传输(附避坑指南)
STM32F4 SPI DMA实战:CubeMXHAL库5分钟极速配置指南 在嵌入式开发中,SPIDMA的组合堪称数据传输的"黄金搭档"——既能享受SPI接口的高速特性,又能通过DMA解放CPU资源。但传统基于寄存器的手动配置方式,往往让开发者陷入繁…...
AI营销技能库:模块化设计提升Claude Code与智能体工作流效率
1. 项目概述:一个为AI营销工作流设计的技能库如果你正在用Claude Code、Cursor这类AI编程工具做营销、内容创作或增长相关的工作,并且感觉每次都要花大量时间写重复的提示词,或者希望团队能有一套标准化的AI工作流程,那么这个名为…...
GroundTruth-MCP:为AI生成代码构建实时事实核查防火墙
1. 项目概述:当AI助手自信地写出过时代码时你的AI助手刚刚又“自信满满”地给你生成了一堆过时的代码。它告诉你React 19里forwardRef用得没问题,Next.js 15的cookies()还是同步函数,或者用字符串模板拼接SQL查询“既简洁又高效”。更糟的是&…...
嵌入式系统如何应对VR/AR的技术挑战:从硬件选型到系统优化
1. 虚拟现实与嵌入式系统的交汇点2016年,如果你在嵌入式系统开发圈子里,听到最多的词除了“物联网”,大概就是“虚拟现实”了。那一年,Oculus Rift消费者版正式发货,HTC Vive也刚刚上市,一股VR热潮席卷了科…...
League Akari:英雄联盟玩家的终极智能助手,5大核心功能全面解析
League Akari:英雄联盟玩家的终极智能助手,5大核心功能全面解析 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为…...
VSCode界面突然变英文了?别慌,一分钟教你切回中文(附快捷键和常见问题解决)
VSCode界面突然变英文了?别慌,一分钟教你切回中文(附快捷键和常见问题解决) 早上打开VSCode准备写代码,突然发现所有菜单和按钮都变成了英文?这种突如其来的"国际化"体验确实让人措手不及。别担…...
告别运行库安装烦恼:Visual C++ AIO合集一键搞定所有版本
告别运行库安装烦恼:Visual C AIO合集一键搞定所有版本 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经为了运行某个软件而四处寻找不同版…...
三极直接耦合放大电路参数优化
简 介: 本文探讨了三极直接耦合放大电路的优化设计。通过调整R3、R6等电阻参数,使Q3集电极偏置电压达到6V左右,实现了10V的输出动态范围。理论分析电路放大倍数为1000倍,实测为800倍。研究发现第一级放大管Q1处于弱放大状态&#…...
