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;


    }
}
相关推荐
tankeven2 分钟前
HJ91 走方格的方案数
c++·算法
俩娃妈教编程4 分钟前
2024 年 09 月 二级真题(2)--小杨的矩阵
c++·算法·gesp真题
浅念-7 分钟前
C++ STL vector
java·开发语言·c++·经验分享·笔记·学习·算法
小雨中_7 分钟前
2.8 策略梯度(Policy Gradient)算法 与 Actor-critic算法
人工智能·python·深度学习·算法·机器学习
m0_531237177 分钟前
C语言-if/else,switch/case
c语言·数据结构·算法
Hag_2011 分钟前
LeetCode Hot100 239.滑动窗口最大值
数据结构·算法·leetcode
漂流瓶jz17 分钟前
UVA-1604 立体八数码问题 题解答案代码 算法竞赛入门经典第二版
算法·ida·深度优先·图论·dfs·bfs·迭代加深搜索
m0_5312371719 分钟前
C语言-while循环,continue/break,getchar()/putchar()
java·c语言·算法
一条大祥脚1 小时前
KMP原理+例题
算法
追随者永远是胜利者10 小时前
(LeetCode-Hot100)20. 有效的括号
java·算法·leetcode·职场和发展·go