当前位置: 首页 > backend >正文

Day94 | 灵神 | 二叉树 统计二叉树中好点的数目

Day94 | 灵神 | 二叉树 统计二叉树中好点的数目

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

1448. 统计二叉树中好节点的数目 - 力扣(LeetCode)

思路:

1.递归函数含义

含义就是以t为根结点的子树中有多少个好点

这个一般就和题目要求的东西是一样的

2.参数以及返回值

int tra(TreeNode* t,int max)

传入的是根节点以及已经走过的路径的最大值

返回值就是以t为根结点的子树中有多少个好点

3.终止条件

if(t==nullptr)return 0;

如果是空节点那肯定不可能有好点了

4.本层逻辑

显然,以t为根结点的好点数量就等于左子树好点数和右子树好点数之和,但是这里还要看当前结点t是否也是好点,是的话那就更新最大值,在左右子树之和基础上再+1,不是的话就不加

		if(t->val>=max){max=t->val;return tra(t->left,max)+tra(t->right,max)+1;}return tra(t->left,max)+tra(t->right,max);

完整代码:

浅浅记录笔者自己的代码

class Solution {
public:int tra(TreeNode* t,int max){if(t==nullptr)return 0;if(t->val>=max){max=t->val;return tra(t->left,max)+tra(t->right,max)+1;}return tra(t->left,max)+tra(t->right,max);}int goodNodes(TreeNode* root) {return tra(root,INT_MIN);}
};

灵神写的简洁版代码

class Solution {
public:int goodNodes(TreeNode *root, int mx = INT_MIN) {if (root == nullptr)return 0;int left = goodNodes(root->left, max(mx, root->val));int right = goodNodes(root->right, max(mx, root->val));return left + right + (mx <= root->val);}
};
http://www.xdnf.cn/news/209.html

相关文章:

  • Javaweb实操(一)—Servlet实现单表的CRUD操作
  • 利用 SSRF 和 Redis 渗透
  • transformer-词嵌入和位置嵌入详解
  • postman使用设置
  • 2025 年第十五届 MathorCup竞赛赛题浅析-助攻快速选题
  • Qt工具栏中添加按钮QAction
  • 内网穿透服务器—FRP
  • 深入理解分布式缓存 以及Redis 实现缓存更新通知方案
  • 基于Ubuntu22.04和OpenCV4.5.4的物联网人脸识别考勤机
  • java线程池原理及使用和处理流程
  • 隐马尔可夫模型(HMM)与序列标注任务详解
  • hadoop三大组件的结构及各自的作用
  • Python作业4 文本词云统计,生成词云
  • 欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会
  • 在国产麒麟Kylin Linux Advanced Server V10中使用QT5开发环境并支持中文输入
  • SimBody安装
  • AI中台系统设计方案探讨
  • CentOS 7系统yum报错解决方案(CentOS 7官方EOL问题修复)
  • 健康养生:开启活力生活新篇章
  • Oracle AWR快照保留策略及其修改
  • mybatis plus打印sql日志到指定目录
  • js前端复制对象
  • 神经接口安全攻防:从技术漏洞到伦理挑战
  • 有什么好用的工程项目施工数据管理信息系统?这类系统有何好处?
  • 麒麟操作系统漏洞修复保姆级教程弱(一)算法漏洞修复
  • 【数据融合实战手册·实战篇】二维赋能三维的5种高阶玩法:手把手教你用Mapmost打造智慧城市标杆案例
  • 重构未来智能:Anthropic 解码Agent设计哲学三重奏
  • Unity-微信截图功能简单复刻-02屏幕采样
  • 青少年编程与数学 02-016 Python数据结构与算法 28课题、图像处理算法
  • 深入理解红黑树:原理、实现与应用