[LeetCode]5398. 统计二叉树中好节点的数目 原创

题目来源 LeetCode20200517双周赛

算法标签 二叉树,树状结构

题目描述

在这里插入图片描述

思路

这里的思路很显然,我们需要左右子路径全部走一遍
1.如果下一个大于等于路径上的最大值就ans++
2.我们要注意最大值的保存,所以必须自己生成一个自定义函数用参数进行存储

AC代码

/**
/**
 * 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 {
public:
    int res;
    
    void dfs(TreeNode* root,int lstmax)
    {
        if(root->val>=lstmax)res++;
        if(root->left)dfs(root->left,max(lstmax,root->val));
        if(root->right)dfs(root->right,max(lstmax,root->val));
    }
    int goodNodes(TreeNode* root) {
        dfs(root,-0x3f3f3f);
        return res;
    }
};
posted @ 2023-08-25 20:24  俺叫西西弗斯  阅读(0)  评论(0)    收藏  举报  来源