Skip to content

968. Binary Tree Cameras #326

Open
Open
@namespace-io

Description

@namespace-io
/**
 * 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 res = 0;
    int dfs(TreeNode* root){
        if(root == nullptr) return 2;
        auto left = dfs(root->left);
        auto right = dfs(root->right);
        if(left == 0 || right == 0){
            res++;
            return 1;
        }
        
        return left == 1 || right == 1 ? 2 : 0;
    }
    
    int minCameraCover(TreeNode* root) {
        return (dfs(root) < 1 ? 1 : 0) + res;
    } 
};

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions