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

力扣每日一题:1448.统计二叉树中好节点的数目

题目:

给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。
「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。

示例 1:

输入:root = [3,1,4,3,null,1,5]
输出:4
解释:图中蓝色节点为好节点。
根节点 (3) 永远是个好节点。
节点 4 -> (3,4) 是路径中的最大值。
节点 5 -> (3,4,5) 是路径中的最大值。
节点 3 -> (3,1,3) 是路径中的最大值。

示例 2:

输入:root = [3,3,null,4,2]
输出:3
解释:节点 2 -> (3, 3, 2) 不是好节点,因为 "3" 比它大。

提示:

  • 二叉树中节点数目范围是 [1, 10^5] 。
  • 每个节点权值的范围是 [-10^4, 10^4] 。

思路

要统计出好节点的个数,那就采用深度优先搜索的方法递归遍历每个节点,同时记录当前的最大值x,若当前遍历到的节点的值val大于x,则说明此节点是好节点。个数加1,更新最大值x为val。

class Solution {
    public int goodNodes(TreeNode root) {
        return dfs(root,Integer.MIN_VALUE);
    }
    public int dfs(TreeNode temp,int x){
        if(temp==null){
            return 0;
        }
        int res=0;
        if(temp.val>=x){
            res++;
            x=temp.val;
        }
        res+=dfs(temp.left,x)+dfs(temp.right,x);
        return res;
    }
}


http://www.kler.cn/a/300054.html

相关文章:

  • 解锁C# EF/EF Core:从入门到进阶的技术飞跃
  • linux网络 | 传输层TCP | 认识tcp报头字段与分离
  • 【Oracle数据库】创建表的同义词示例
  • 工程上LabVIEW常用的控制算法有哪些
  • Linux内核编程(二十一)USB驱动开发-键盘驱动
  • 【附源码】108个Python实战项目,练完能力飙升
  • 3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)
  • 计算机视觉中,什么是Hide-and-Seek?
  • ctf.show靶场ssrf攻略
  • Ubuntu 比较两个文件夹
  • lint warning: Detected unload(unconected) net
  • google vr 入门之VrPanoramaView制作全景图列表
  • 虚拟机安装教程
  • github远程仓库环境搭建及使用
  • 单场景续航
  • 大数据新视界 --大数据大厂之 Spark 性能优化秘籍:从配置到代码实践
  • 网络层 VIII(网络层设备——路由器)【★★★★★★】
  • 非高峰期我
  • 基于springboot+vue乒乓球预约管理系统
  • 如果您的 iPhone 卡在 Apple 标志画面
  • 江协科技STM32学习- P9 OLED调试工具
  • kplayer推流24小时直播 闲置云服务器使用
  • 使用 Grype 检查 .jar 包中的漏洞
  • Linux压缩、解压缩、查看压缩内容详解使用(tar、gzip、bzip2、xz、jar、war、aar)
  • 【区块链 + 人才服务】家政服务诚信证明平台 | FISCO BCOS应用案例
  • Emlog程序屏蔽用户IP拉黑名单插件