做搬家网站的素材,淮北网站建设公司,自学设计的网站有哪些,wordpress 权限控制给定一个二叉树#xff0c;我们在树的节点上安装摄像头。
节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。
计算监控树的所有节点所需的最小摄像头数量。
输入#xff1a;[0,0,null,0,0] 输出#xff1a;1 解释#xff1a;如图所示#xff0c;一台摄像头足…给定一个二叉树我们在树的节点上安装摄像头。
节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。
计算监控树的所有节点所需的最小摄像头数量。
输入[0,0,null,0,0] 输出1 解释如图所示一台摄像头足以监控所有节点。
代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/
class Solution {int cnt0;public int minCameraCover(TreeNode root) {if(getMinCameraCover(root)0) cnt;return cnt;}//返回值代表节点的状态 1是被装了摄像头 2是被子节点罩的 3是0没人罩的public int getMinCameraCover(TreeNode root) {if(rootnull) return 2;int lgetMinCameraCover(root.left);int rgetMinCameraCover(root.right);if(l0||r0)//子节点没人监控需要该节点监控他{cnt;return 1;//告诉父节点 他被监控了}else if(r1||l1)//该节点已经被子节点监控了{return 2;//告诉父节点没人监控他}return 0;//告诉父节点要装监控不然这个节点就没监控了}
}