首页 > 其他分享 >力扣---1448. 统计二叉树中好节点的数目

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

时间:2023-08-25 20:13:41浏览次数:32  
标签:count 力扣 int max --- 二叉树 root 节点

给你一棵根为 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" 比它大。

示例 3:

输入:root = [1]
输出:1
解释:根节点是好节点。

 

提示:

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

 

深度优先遍历,记录当前路径的最大值,进行比较即可。

class Solution {
    public int goodNodes(TreeNode root) {
        return dfs(root, Integer.MIN_VALUE);
    }
    private int dfs(TreeNode root, int max) {
        if (root == null) {
            return 0;
        }
        int count = 0;
        if (root.val >= max) {
            count += 1;
        }
        count += dfs(root.left, Math.max(max, root.val));
        count += dfs(root.right, Math.max(max, root.val));
        return count;
    }
}

 

标签:count,力扣,int,max,---,二叉树,root,节点
From: https://www.cnblogs.com/allWu/p/17657815.html

相关文章

  • QT-网络编程
    说明当涉及Qt网络编程时,通常会使用Qt提供的网络模块,其中最常用的是QTcpSocket和QTcpServer类QTcpSocketQTcpSocket是Qt网络模块中的一个类,用于实现TCP客户端的网络通信。它提供了一个接口,允许你连接到远程主机并在网络上发送和接收数据1.构造函数QTcpSocket(QOb......
  • math---多元函数积分方法整理
    复习到了这里,解题方法有点多,脑子有点乱,遂整理一下一、常规的三重积分解法1、先一后二法:用x,y表示z2、先二后一法:用z表示x,y3、球形积分4、常用技巧对称性、轮换对称、换元法(补行列式),其中球形积分就是用到了换元的思想:二、第一型曲线积分第一型曲线积分主要解决......
  • 单播-动态路由的分类
    根据作用范围根据作用的范围,路由协议可分为:内部网关协议(InteriorGatewayProtocol,简称IGP):在一个自治系统内部运行,常见的IGP协议包括RIP、OSPF和IS-IS。外部网关协议(ExteriorGatewayProtocol,简称EGP):运行于不同自治系统之间,BGP是目前最常用的EGP协议。根据使用的算法......
  • 原来你是这样的SpringBoot--Async异步任务
    本节我们一起学习一下SpringBoot中的异步调用,主要用于优化耗时较长的操作,提高系统性能和吞吐量。一、新建项目,启动异步调用首先给启动类增加注解@EnableAsync,支持异步调用@EnableAsync@SpringBootApplicationpublicclassCathySpringbootDemoApplication{publicstat......
  • CF1442D-Sum
    SumYouaregiven\(n\)non-decreasingarraysofnon-negativenumbers.Vasyarepeatsthefollowingoperation\(k\)times:Selectsanon-emptyarray.Putsthefirstelementoftheselectedarrayinhispocket.Removesthefirstelementfromtheselect......
  • Stable Diffusion 性能优化 - xformers安装问题
    StableDiffusion性能优化-xformers安装问题2023年06月03日21:525376浏览 · 8喜欢 · 8评论Contra实验编程粉丝:3.9万文章:26关注  上节课中,训练营3期02,SD本地环境,有人出现xformers安装问题:xFormerswasbuiltfor:PyTorch2.0.0+cu118withC......
  • bh006- Blazor hybrid / Maui 使用NFC快速教程
    1.建立工程bh006_NFC_tag源码https://github.com/densen2014/BlazorHybrid/tree/master/bh100days/bh006_NFC_tag?WT.mc_id=DT-MVP-50050782.添加nuget包<PackageReferenceInclude="BlazorHybrid.Maui.Permissions"Version="0.0.3"/><Packag......
  • Feign-性能优化
         ......
  • 【力扣】赎金信
    https://leetcode.cn/problems/ransom-note/submissions/1classSolution{2publicbooleancanConstruct(StringransomNote,Stringmagazine){3//两个字符串长度不一样,则返回true4if(ransomNote.length()>magazine.length()){5......
  • c# .NET 高级编程 高并发必备技巧 - 锁
    锁最为常见的应用就是高并发的情况下,库存的控制。本次只做简单的单机锁介绍。直接看代码:每请求一次库存-1.假如库存1000,在1000个人请求之后,库存将变为0。publicintReduce0(){intr=0;stringkey="stock";stringstoc......