Leetcode[968] Binary Tree Cameras Python3实现
1 | # Given a binary tree, we install cameras on the nodes of the tree. |
dfs返回三个值:
a:root放置摄像头,覆盖整棵树需要的最少摄像头数量
b:覆盖整棵树需要的最少摄像头数量
c:覆盖左右子树需要的最少摄像头数量
根据定义可得:
1 | # root放1个,那么root.left 和 root.right都不需要了,只需把root.left的左右子树和root.right的左右子树覆盖掉就ok了。 |
通过dfs递归,自下而上得出root的a、b、c,其中b即为所求。
该题目还有贪心解法,待学习。