Leetcode 968-监控二叉树

给定一个二叉树,我们在树的节点上安装摄像头。

节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。

计算监控树的所有节点所需的最小摄像头数量。

题解

参考自代码随想录

bash 复制代码
class Solution {
    public int result=0;
    public int minCameraCover(TreeNode root) {
        if (dfs(root) == 0) { // root 无覆盖
            result++;
        }
        return result;
        
    }

    public int dfs(TreeNode root){
        //边界条件
        // 空节点,该节点有覆盖
        if (root == null) return 2;

        int left=dfs(root.left);
        int right=dfs(root.right);

        //左右子节点有一个没有覆盖,本节点需要装监控
        if(left==0||right==0){
            result++;
            return 1;
        }
        //左右子节点有一个有监控,本节点被覆盖
        if(left==1||right==1) return 2;
        else return 0;


    }
}
相关推荐
我带你来这儿就是为了告诉你我1 分钟前
C++23新特性前瞻
开发语言·c++·算法
陌夏5 分钟前
快速排序 (Quick Sort)
算法
IronMurphy14 分钟前
【算法二十九】 437. 路径总和 III
算法·深度优先
2501_9083298516 分钟前
C++安全编程指南
开发语言·c++·算法
计算机安禾18 分钟前
【C语言程序设计】第39篇:预处理器与宏定义
c语言·开发语言·c++·vscode·算法·visual studio code·visual studio
参.商.20 分钟前
【Day43】49. 字母异位词分组
leetcode·golang
m0_5698814729 分钟前
C++中的装饰器模式变体
开发语言·c++·算法
笒鬼鬼30 分钟前
【API接口】最新可用红果短剧接口
算法·api·笒鬼鬼·红果短剧·接口源码
weixin_4219226932 分钟前
C++与边缘计算
开发语言·c++·算法
2401_8319207434 分钟前
C++编译期数组操作
开发语言·c++·算法