2023-08-25 LeetCode每日一题(统计二叉树中好节点的数目)

news2025/1/20 3:01:23

2023-08-25每日一题

一、题目编号

1448. 统计二叉树中好节点的数目

二、题目链接

点击跳转到题目位置

三、题目描述

给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。

「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。

示例 1:
在这里插入图片描述
示例 2:
在这里插入图片描述
示例 3:
在这里插入图片描述
提示:

  • 二叉树中节点数目范围是 [1, 105] 。
  • 每个节点权值的范围是 [-104,104] 。

四、解题代码

/**
 * 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 {
    int dfs(TreeNode* &root, int &max_num){
        if(root == nullptr){
            return 0;
        }
        if(root->val < max_num){
            return dfs(root->left, max_num)+dfs(root->right, max_num);
        }
    return 1 + dfs(root->left, root->val) + dfs(root->right, root->val);    
    } 

public:
    int goodNodes(TreeNode* root) {
    return  dfs(root, root->val);
    }
};

五、解题思路

(1) 因为题目中是在树中进行问题解决的,所以需要使用树的遍历。

(2) 因为所以寻找的点是从根节点到当前节点没有比当前节点大的,最大节点一开始设置为根结点。如果遍历到的节点小于根结点,那么最大节点值不需要更新,并且剩余符合要求的需要从左子树和右子树中找。如果当前节点大于等于目前已经更新的最大节点,则最大节点的值更新,并且最终的结果是1(当前遍历到的节点满足要求)+ 左子树和右子树中所有满足要求的节点。

(3) 返回结果即可。

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

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

相关文章

低调大佬造车,扒一扒极石01

作者 | 普通一涛 编辑 | 德新 又一个汽车新品牌诞生了。 极石&#xff0c;是的&#xff0c;很多人没有听过。它不是传统汽车品牌&#xff0c;也不是传统主机厂成立的新品牌&#xff0c;而是一家新势力。 乍听名字&#xff0c;极字辈都是高端品牌家族——极狐、极星、极氪、极越…

广场小记

&#xff08;1&#xff09; 广场上有人唱卡拉ok&#xff1a; 女声唱的是&#xff1a;嫁人就要嫁给你 男声唱的是&#xff1a;我爱我的祖国 非常的50年代。 那一代人就是这么真挚、直接、热烈。 那一代人经历60大饥荒、66wg、68上山下乡、80回城个体户、90大下岗。16岁时的他们&…

正确进行自动化测试

前言&#xff1a; &#x1f4d5;作者简介&#xff1a;热爱编程的小七&#xff0c;致力于C、Java、Python等多编程语言&#xff0c;热爱编程和长板的运动少年&#xff01; &#x1f4d8;相关专栏Java基础语法&#xff0c;JavaEE初阶&#xff0c;数据库&#xff0c;数据结构和算法…

惊!同事做汇报都开始卷大屏了,问了一嘴,这个工具小白最好上手

老陈最近出差&#xff0c;去上海的一个公司考察学习&#xff0c;在人家会议室听别人分享的时候&#xff0c;发现大家现在是真的卷&#xff0c;连个普通的汇报都搞了张可视化大屏&#xff0c;直接把公司的核心数据展现得明明白白&#xff0c;鼠标点哪亮哪&#xff0c;真的特别炫…

Effective C++条款16——成对使用new和delete时要采取相同形式(资源管理)

以下动作有什么错? std::string* stringArray new std::string[100]; // ... delete stringArray;每件事看起来都井然有序。使用了new&#xff0c;也搭配了对应的 delete。但还是有某样东西完全错误:你的程序行为不明确&#xff08;未有定义&#xff09;。最低限度&#xff…

水利部推荐的数字孪生水利建设典型案例介绍

2022年以来&#xff0c;水利部先后出台《数字孪生流域建设技术大纲&#xff08;试行&#xff09;》《数字孪生水网建设技术导则&#xff08;试行&#xff09;》《数字孪生水利工程建设技术导则&#xff08;试行&#xff09;》《水利业务“四预”基本技术要求&#xff08;试行&a…

C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密

C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密&#xff0c;为了演示方便本问使用的是Visual Studio 2022 来构建代码的 1、新建项目&#xff0c;之后选择 项目 鼠标右键选择 管理NuGet程序包管理&#xff0c;输入 BouncyCastle 回车 添加BouncyCastle程序包 2、代码如下&am…

iphone手机铃声怎么设置,4个步骤包您学会!

iPhone手机的铃声设置包括很多种&#xff0c;比如来电铃声、短信铃声、语音提醒铃声等等。设置一个动听的铃声也能使人心情愉悦&#xff0c;那么iPhone手机铃声怎么设置呢&#xff1f;还有&#xff0c;有些朋友喜欢将喜欢的音乐设置为铃声&#xff0c;那又该怎么做呢&#xff1…

百度AI智障到AI智能体验之旅

目录 前言一、百度PLATO1.抬杠第一名2.听Ta瞎扯淡3.TA当场去世了4.智障与网友的高光时刻 二、文心一言1.设计测试用例2.随意发问3.手机端约会神器 三、体验总结&#xff1a;四、千帆大模型 前言 最近收到了文心一言3.5大模型的内测资格&#xff0c;正巧之前也体验过它的前身&q…

yolov8实战之torchserve服务化:使用yolov8x来预打标

前言 最近在做一个目标检测的任务&#xff0c;部署在边缘侧&#xff0c;对于模型的速度要求比较严格&#xff08;yolov8n这种&#xff09;&#xff0c;所以模型的大小不能弄太大&#xff0c;所以原模型的性能受限&#xff0c;更多的重点放在增加数据上。实测yolov8x在数据集上…

旺店通·企业版对接打通金蝶云星空订单查询接口与销售出库新增接口

旺店通企业版对接打通金蝶云星空订单查询接口与销售出库新增接口 数据源平台:旺店通企业版 旺店通是北京掌上先机网络科技有限公司旗下品牌&#xff0c;国内的零售云服务提供商&#xff0c;基于云计算SaaS服务模式&#xff0c;以体系化解决方案&#xff0c;助力零售企业数字化智…

聚水潭与金蝶云星空对接集成库存盘点查询打通其他出库单新增V2

聚水潭与金蝶云星空对接集成库存盘点查询打通其他出库单新增V2 来源系统:聚水潭 聚水潭是SaaS协同平台、电商ERP软件。聚水潭成立于2014年&#xff0c;创始人兼CEO骆海东拥有近三十年传统及电商ERP的研发和实施部署经验。聚水潭创建之初&#xff0c;以电商SaaSERP切入市场&…

机器学习算法示例的收集;MetaAI编码工具Code Llama;“天工AI搜索”首发实测

&#x1f989; AI新闻 &#x1f680; Meta推出新一代AI编码工具Code Llama&#xff0c;助力程序员提高开发效率 摘要&#xff1a;Meta推出Code Llama&#xff0c;这是一个基于Llama 2语言模型打造的AI编码工具&#xff0c;能够生成新的代码并调试人类编写的工作。Code Llama可…

【Go Web 篇】Go 语言进行 Web 开发:构建高性能网络应用

随着互联网的快速发展&#xff0c;Web 开发已经成为了软件开发领域中不可或缺的一部分。随之而来的是对于更高性能、更高效的网络应用的需求。在这个领域&#xff0c;Go 语言因其并发性能、简洁的语法以及丰富的标准库而备受关注。本篇博客将深入探讨如何使用 Go 语言进行 Web …

linux入门详解

文章目录 一、引言1.1 开发环境1.2 生产环境1.3 测试环境1.4 操作系统的选择 二、Linux介绍2.1 Linux介绍2.2 Linux的版本2.3 Linux和Windows区别 三、Linux安装3.1 安装VMware3.2 安装Xterm3.3 在VMware中安装Linux3.3.1 选择安装方式3.3.2 指定镜像方式3.3.3 选择操作系统类型…

springboot设置文件上传大小,默认是1mb

问题排查和解决过程 之前做了个项目&#xff0c;需要用到文件上传&#xff0c;启动项目正常&#xff0c;正常上传图片也正常&#xff0c;但这里图片刚好都小于1M&#xff0c;在代码配置文件里面也写了配置&#xff0c;限制大小为500M&#xff0c;想着就没问题&#xff08;测试…

基于NXP i.MX 6ULL核心板的物联网模块开发案例(1)

目录 前 言 1 SDIO WIFI模块测试 1.1 STA模式测试 1.2 AP模式测试 1.3 SDIO WIFI驱动编译 前言 本文主要介绍基于创龙科技TLIMX6U-EVM评估板的物联网模块开发案例&#xff0c;适用开发环境&#xff1a; Windows开发环境&#xff1a;Windows 7 64bit、Windows 10 64bit …

PDF怎么批量加密?掌握这招事半功倍

PDF文件是一种广泛使用的文档格式&#xff0c;而加密可以有效地保护PDF文件的安全性。当需要批量加密PDF文件时&#xff0c;以下是一些方法及注意事项。 PDF批量加密的方法 相信很多小伙伴平时都是直接在PDF阅读器中对文档进行加密&#xff0c;但是这样只能每次对当前打开的文…

当你在浏览器中输入了网址访问时产生了哪些技术步骤

当你在浏览器中输入了网址访问时产生了哪些技术步骤 前段时间在知乎上了看一些网络方面的知识&#xff0c;刚好小编自己也是从事这一块的相关工作由对网络方面有一定的了解。今天我们来讲讲&#xff0c;当你在浏览器中输入本站域名并回车后&#xff0c;这背后到底发生来什么事…

yolov3加上迁移学习和适度的数据增强形成的网络应用在输电线异物检测

Neural Detection of Foreign Objects for Transmission Lines in Power Systems Abstract. 输电线路为电能从一个地方输送到另一个地方提供了一条路径&#xff0c;确保输电线路的正常运行是向城市和企业供电的先决条件。主要威胁来自外来物&#xff0c;可能导致电力传输中断。…