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;


    }
}
相关推荐
誓约酱18 分钟前
排序算法 -计数排序
数据结构·c++·算法·排序算法
Fms_Sa38 分钟前
分别写出在散列表中插入和删除关键字为K的一个记录的算法,设散列函数为H,解决冲突的方法为链地址法。
c语言·数据结构·算法·哈希算法·散列表
Trouvaille ~41 分钟前
【优选算法篇】化繁为简,见素抱朴:从乱象中重构秩序的艺术
c++·算法·面试·蓝桥杯·排序算法·快速排序·分治
繁星璀璨G1 小时前
C++11标准模板(STL)- 常用数学函数 - 宏常量 - 求值得到float类型的安静NaN(NAN)
开发语言·c++·算法·stl·常用数学函数·nan
红队it1 小时前
【计算机毕设】无查重 基于python豆瓣电影评论舆情数据可视化系统(完整系统源码+数据库+开发笔记+详细部署教程)✅
数据库·笔记·python·算法·机器学习·信息可视化·数据分析
白鹭float.2 小时前
【算法速刷(10/100)】LeetCode —— 23. 合并 K 个升序链表
算法·leetcode
我焦虑的编程日记2 小时前
【蓝桥杯算法】Java的基础API
java·算法·排序算法
zhuzhuxia⌓‿⌓2 小时前
求矩阵中最小元素及其位置
c语言·算法
Horacek2 小时前
《C++ 实现生成多个弹窗程序》
java·开发语言·c++·学习·算法
zero_one_Machel2 小时前
leetcodeQ76最小覆盖子串
java·开发语言·算法