【LeetCode75】第三十五题 统计二叉树中好节点的数目

目录

题目:

示例:

分析:

代码:


题目:

【LeetCode75】第三十五题 统计二叉树中好节点的数目_第1张图片

示例:

【LeetCode75】第三十五题 统计二叉树中好节点的数目_第2张图片

分析:

给我们一棵二叉树,让我们统计这棵二叉树中好节点的数目。

那么什么是好节点,题目中给出定义,从根节点到好节点中,没有一个节点的数值大于好节点的数值。

那么我们一样是递归这棵二叉树,只不过我们需要多携带一个参数,那就是沿途节点的最大值,每次遇到比沿途节点的最大值还大(或者是等于)的节点时,我们就可以认为当前这个节点就是好节点,然后我们将答案+1,并且更新沿途节点的最大值然后再接着遍历。

整棵二叉树递归遍历完毕之后我们就可以得到好节点的数目了。

代码:

class Solution {
public:
    int res=0;
    void digui(TreeNode* root,int Max){
        if(root==nullptr) return;
        if(root->val>=Max){
            res++;
            Max=max(Max,root->val);
        }
        digui(root->left,Max);
        digui(root->right,Max);
    }
    int goodNodes(TreeNode* root) {
        if(root==nullptr) return 0;
        digui(root,root->val);
        return res;
    }
};

你可能感兴趣的:(LeetCode75题解,算法,leetcode,数据结构,c++)