給定乙個二叉樹,我們在樹的節點上安裝攝像頭。
節點上的每個攝影頭都可以監視其父物件、自身及其直接子物件。
計算監控樹的所有節點所需的最小攝像頭數量。
輸入:[0,0,null,0,null,0,null,null,0]
輸出:2
解釋:需要至少兩個攝像頭來監視樹的所有節點。 上圖顯示了攝像頭放置的有效位置之一。
給定樹的節點數的範圍是 [1, 1000]。
每個節點的值都是 0。
方法一:後序遍歷
子節點可能的狀態有(我們約定為):
class
solution
int l =
dfs(root-
>left)
, r =
dfs(root-
>right);if
(l ==
0|| r ==0)
else
if(l ==
1|| r ==1)
else
}int
mincameracover
(treenode* root)
};
複雜度分析 建立二叉樹 後序建立二叉樹
由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...
leetcode筆記 145 二叉樹的後序遍歷
題目 給定乙個二叉樹,返回它的 後序 遍歷 1 遞迴寫法 class solution 2 迭 法 class solution else return res 3 這種思路和劍指32題中的思路是一樣的,只不過最後反轉鍊錶的做法不一樣。同樣是使用棧,新增節點時把後序當作 根 右 左,然後再反轉一下即...
leetcode練習 145 二叉樹的後序遍歷
給定乙個二叉樹,返回它的 後序 遍歷。示例 輸入 1,null,2,3 12 3輸出 3,2,1 二叉樹的後序遍歷有個很奇怪的特點,就是通過對二叉樹使用棧進行層序遍歷,可以恰好得到乙個後序遍歷的結果。class solution if t right reverse res.begin res.en...