968. Binary Tree Camerashtml
思路:若是子节点只能覆盖到父节点、当前节点,可是父节点能够覆盖到他的父节点、子节点、当前节点,因此从叶子节点往上考虑node
0表明子节点没有被覆盖spa
1表明子节点被覆盖,可是子节点没有cameracode
2表明子节点被覆盖,子节点有camerahtm
http://www.javashuo.com/article/p-sbxbnfhk-ek.htmlblog
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int minCameraCover(TreeNode* root) { int sum = 0; if(minCameraCover(root,sum) == 0) sum++; return sum; } int minCameraCover(TreeNode* root,int& sum){ if(!root) return 1; int left = minCameraCover(root->left,sum); int right = minCameraCover(root->right,sum); if(left == 0 || right == 0){ sum++; return 2; } else if(left == 2 || right == 2) return 1; else return 0; } };