文章目录
题目
代码(7.27 首刷看解析)
看这篇解析吧,写的很好!
贪心算法:我要监控二叉树!
class Solution {
public:
int res = 0;
int minCameraCover(TreeNode* root) {
if(traversal(root) == 0) // root无覆盖
res++;
return res;
}
int traversal(TreeNode* root) {
if(!root)
return 2;
int left = traversal(root->left);
int right = traversal(root->right);
if(left == 2 && right == 2)
return 0; // 不需要加了
if(left == 0 || right == 0) {
res++;
return 1; // 摄像头
}
if(left == 1 || right == 1)
return 2; // 被覆盖
return -1; // 不会走到这的
}
};