class Solution {
public:
int res = 0;
int postOrderTravel(TreeNode* cur) {
//空节点为有覆盖
if (cur == nullptr)
return 2;
int left = postOrderTravel(cur->left);
int right = postOrderTravel(cur->right);
//左右孩子都未被覆盖
if (left == 2 && right == 2) {
return 0;
}
//左右孩子有一个未被覆盖
else if (left == 0 || right == 0) {
res++;
return 1;
}
//左右孩子有一个安了摄像头
else if (left == 1 || right == 1) {
return 2;
}
else return -1;
}
int minCameraCover(TreeNode* root) {
//存在根节点未被覆盖的情况
if (postOrderTravel(root) == 0) {
res++;
}
return res;
}
};
LeetCode968.监控二叉树
最新推荐文章于 2024-07-13 13:36:16 发布