1448. 统计二叉树中好节点的数目
题目
传送门:https://leetcode.cn/problems/count-good-nodes-in-binary-tree/
算法设计:深度优先搜索
用 curMax
记录从根节点到当前节点路径中的最大值,如果 root.val >= curMax
则可 root 是「好节点」,再把 pathMax 传递到子树中继续判断其他节点。
class Solution {
public:
int count = 0;
void dfs(TreeNode* node, int curMax) {
if (!node) return;
if (node->val >= curMax) {
count++;
curMax = node->val;
}
dfs(node->left, curMax);
dfs(node->right, curMax);
}
int goodNodes(TreeNode* root) {
dfs(root, root->val);
return count;
}
};