**Problem Statement:**
Given the required input arguments, write an efficient algorithm to solve the **Binary Tree Cameras** problem. Implement the required logic as specified by standard definitions for this classic algorithmic challenge.
**Hint / Expected Approach:**
Post-order DFS with 3 states (covered/camera/uncovered)
**Edge Cases to Consider:**
- (1) Single node (needs 1 camera)
- (2) Path graph
- (3) Perfectly balanced tree
Examples
Example 1
Input:[0,0,null,0,0]
Output:1
Explanation: One camera covers all
Example 2
Input:[0,0,null,0,null,0,null,null,0]
Output:2
Explanation: Linear chain needs 2
Example 3
Input:[0]
Output:1
Explanation: Single node needs 1 camera
Constraints
▪The number of nodes in the tree is in the range [0, 2000]
▪-1000 <= Node.val <= 1000
▪Ensure depth-first or breadth-first traversals are memory-efficient