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

题目链接

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

题目描述


注意点

  • 二叉树中节点数目范围是 [1, 10^5]
  • 每个节点权值的范围是 [-10^4, 10^4]
  • 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值

解答思路

  • 深度优先遍历存储每条路径的最大值,在深搜的过程中,将当前节点的值与最大值进行比较,如果不比最大值小,说明当前节点是好节点,结果需要加1,且更新最大值;如果比最大值小,则当前节点不是好节点,继续遍历其左右节点

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int goodNodes(TreeNode root) {
        return dfs(root, Integer.MIN_VALUE);
    }

    public int dfs(TreeNode root, int maxVal) {
        if (root == null) {
            return 0;
        }
        if (root.val >= maxVal) {
            return dfs(root.left, root.val) + dfs(root.right, root.val) + 1;
        } else {
            return dfs(root.left, maxVal) + dfs(root.right, maxVal);
        }
    }
}

关键点

  • 深度优先遍历的思想

相关推荐

  1. 1448. 统计节点数目

    2024-04-22 13:06:05       23 阅读
  2. LeetCode 671. 第二小节点

    2024-04-22 13:06:05       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 13:06:05       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 13:06:05       97 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 13:06:05       78 阅读
  4. Python语言-面向对象

    2024-04-22 13:06:05       88 阅读

热门阅读

  1. /sys/class/dmi/id/目录文件详解,查看系统硬件信息

    2024-04-22 13:06:05       59 阅读
  2. .NET/C#汇总 —— WPF

    2024-04-22 13:06:05       32 阅读
  3. 【Terraform实战】如何从头自动起一个nginx实例

    2024-04-22 13:06:05       37 阅读
  4. C# 扩展运算符(...)的详细解析

    2024-04-22 13:06:05       39 阅读
  5. ActiveMQ入门案例(queue模式和topic模式)

    2024-04-22 13:06:05       36 阅读
  6. Go的题目

    2024-04-22 13:06:05       28 阅读