【二叉树】Leetcode 在每个树行中找最大值

news2025/2/23 20:16:58

题目讲解

515. 在每个树行中找最大值
在这里插入图片描述


算法讲解

这道题的重点在于怎么能够保存这一层的节点,并求出层节点的最大值:我们需要使用一个queue,每一次出队列的时候将当前队头结点的左右子树入队列(这里就是将下一层的结点入队),并判断每一次出队列结点的值是否是最大的(每一次出队列的节点就是当前层的节点)

/**
 * 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 {
public:
    vector<int> largestValues(TreeNode* root) {
        vector<int> ret;
        int levesize = 0;
        queue<TreeNode*> q;
        if(!root)return ret;
        q.push(root);
        while(!q.empty())
        {
            levesize = q.size();
            int num = INT_MIN;
            while(levesize--)
            {
                TreeNode* cur = q.front();
                q.pop();
                num = max(num, cur->val);
                if(cur->left)q.push(cur->left);
                if(cur->right)q.push(cur->right);
            }
            ret.push_back(num);
        }
        return ret;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机Java项目|基于springboot的社区团购系统设计

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、Python项目、前端项目、人工智能与大数据、简…

vscode无法连接 , .vscode-server版本问题

vscode无法连接 &#xff0c; .vscode-server版本问题 解决办法 &#xff1a; 查看自己的版本号 2. 两边vscode版本号需要一致 找一台vscode可以远程连接的&#xff0c; 将它的.vscode-server/bin/b06ae3b2d2dbfe28bca3134cc6be65935cdfea6a 传到 远程服务器上 或者 本地的…

vue3组件插槽

Index.vue: <script setup> import { ref, onMounted } from vue import Child from ./Child.vue import ./index.cssonMounted(() > {}) </script><template><div class"m-home-wrap"><Child>插槽</Child><div class&qu…

1063 计算谱半径

solution 找出虚部和实部平方和的最大值&#xff0c;输出该最大值的开方&#xff0c;保留两位小数 #include<iostream> #include<cmath> using namespace std; int main(){int n, a, b, ans 0;scanf("%d", &n);while(n--){scanf("%d%d"…

安泰ATA-7050高压放大器应用领域:电流体动力喷墨打印技术!

柔性印刷电子器件性能强烈依赖于材料、线宽、以及工艺控制&#xff0c;实现高分辨率、高性能功能微纳结构的大面积、低成本、快速制造已经为柔性印刷电子产业化发展的基础性问题。与传统压电、热气泡等“挤”模式喷墨打印工艺不同&#xff0c;电流体喷墨打印&#xff08;Electr…

Unsupervised Image-to-Image Translation Networks

Unsupervised Image-to-Image Translation Networks 无监督图像到图像翻译网络 Ming-Yu Liu, Thomas Breuel, Jan Kautz 刘明玉&#xff0c;Thomas Breuel&#xff0c;Jan Kautz NVIDIA {mingyul,tbreuel,jkautz}nvidia.com NVIDIA {mingyul&#xff0c;tbreuel&#xff0c;j…

电动汽车与 PLM:下一代转型的结合

汽车电气化是汽车行业持续变革的驱动力&#xff0c;因此电动汽车 (EV) 行业成为当今最令人兴奋、最相关和最必要的创新领域之一。快速且有利可图地设计电动汽车及其零部件&#xff0c;同时使其受到消费者的青睐&#xff0c;是一项艰巨的挑战。因此&#xff0c;电动汽车行业企业…

想要成为项目经理?先掌握这24条职场生存法则!

以下是项目经理的24条职场经验&#xff0c;这些经验涵盖了项目管理的各个方面&#xff0c;希望能对项目经理或有意成为项目经理的人有所启发。 1、明确目标&#xff1a;项目成功的关键在于明确的目标。在项目启动之初&#xff0c;确保所有利益相关者对项目目标有清晰、共同的…

[Algorithm][递归][搜索][回溯]总体理解+ 算法总结 (极其干货哦~)

目录 0.观前必读1.递归1.什么是递归&#xff1f;2.为什么会用到递归&#xff1f;3.如何理解递归&#xff1f;4.如何写好一个递归&#xff1f; 2.概念乱斗:P1.深度优先遍历 vs 深度优先搜索 && 宽度优先遍历 vs 宽度优先搜索2.搜索 vs 暴搜3.拓展搜索问题 3.回溯与剪枝4…

PostgreSQL建表语句 INT, INT2, INT4, INT8 分别对应Java,Go, Python什么数据类型?

&#x1f42f; PostgreSQL建表语句 INT, INT2, INT4, INT8 分别对应Java&#xff0c;Go, Python什么数据类型 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题…

selenium进行xhs图片爬虫:06xhs一个博主的全部文章图片爬取

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️感谢大家点赞&#x1f44d;&…

计算机毕业设计源码 | 基于SpringBoot的线上教学系统 答疑辅导网站(附源码)

1&#xff0c;项目介绍 1.1 项目背景 网络问答平台经历了多年的发展&#xff0c;目前处于一个日益成熟的状态。最早的网络问答平台是知乎&#xff0c;知乎的创立者认为有许多信息在互联网上没有被记录和共享&#xff0c;于是他们决定创造一个平台&#xff0c;能够让更多人可以…

Spring的IOC和AOP机制?

我们是在使用Spring框架的过程中&#xff0c;其实就是为了使用IOC&#xff0c;依赖注入&#xff0c;和AOP&#xff0c;面向切面编程&#xff0c;这两个是Spring的灵魂。 主要用到的设计模式有工厂模式和代理模式。 IOC就是典型的工厂模式&#xff0c;通过sessionfactory去注入…

CVE-2015-1635(MS15-034 ) 远程代码执行漏洞

1.打补丁 https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2015/ms15-034 2.临时禁用IIS内核缓存

大型语言模型自我进化综述

24年4月来自北大的论文“A Survey on Self-Evolution of Large Language Models”。 大语言模型&#xff08;LLM&#xff09;在各个领域和智体应用中取得了显着的进步。 然而&#xff0c;目前从人类或外部模型监督中学习的LLM成本高昂&#xff0c;并且随着任务复杂性和多样性的…

【STM32 |外部中断】中断系统、EXTI外部中断

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 丠丠64-CSDN博客&#x1f388;&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起…

一图看懂git merge和git rebase的区别!!

一图看懂git merge和git rebase的区别&#xff01;&#xff01; Git 是一个非常流行的版本控制系统&#xff0c;它帮助开发者管理代码的不同版本。在 Git 中&#xff0c;merge 和 rebase 是两种常用的将不同分支的更改合并到一起的方法&#xff0c;但它们在处理方式和结果上有…

第四届微调——炼丹

学习地址&#xff1a;Tutorial/xtuner/README.md at main InternLM/Tutorial GitHub 笔记 微调是一种在已有的预训练模型基础上&#xff0c;通过使用新的数据对模型进行进一步优化和调整的技术手段。它的目的是使模型能够更好地适应特定的应用场景和任务需求&#xff0c;进一…

融入新科技的SLM27211系列 120V, 3A/4.5A高低边高频门极驱动器兼容UCC27284,MAX15013A

SLM27211是高低边高频门极驱动器&#xff0c;集成了120V的自举二极管&#xff0c;支持高频大电流的输出&#xff0c;可在8V~17V的宽电压范围内驱动MOSFET&#xff0c;独立的高、低边驱动以方便控制&#xff0c;可用于半桥、全桥、双管正激和有源钳位正激等拓。有极好的开通、关…

26 Debian如何配置SSH密钥对验证(支持无密码安全登录)

作者&#xff1a;网络傅老师 特别提示&#xff1a;未经作者允许&#xff0c;不得转载任何内容。违者必究&#xff01; Debian如何配置SSH密钥对验证 《傅老师Debian小知识库系列之26》——原创 前言 傅老师Debian小知识库特点&#xff1a; 1、最小化拆解Debian实用技能&…