2.如果當前節點是葉子節點,則在當前路徑末尾新增該節點後*將該路徑加入到結果中。
如此,當遍歷完整棵二叉樹以後我們就得到了所有從根節點到葉子節點的路徑。
class
solution
public
void
constructpaths
(treenode root, string path, list
paths)
else}}
}
那換成廣度遍歷需要怎樣完成呢?
我們可以先建兩個佇列,乙個佇列nodequeue用來儲存結點,另乙個佇列pathqueue用來儲存路徑。
接著我們先判斷當前節點是否為葉子結點,若是,則將此結點加入到pathqueue後就新增到list中。
若不是葉子結點,則將其子節點存入nodequeue,並寫進pathqueue中。
當隊列為空時廣度優先搜尋結束,我們即能得到答案。
class
solution
queue
nodequeue =
newlinkedlist
<
>()
; queue
pathqueue =
newlinkedlist
<
>()
; nodequeue.
offer
(root)
; pathqueue.
offer
(integer.
tostring
(root.val));
while
(!nodequeue.
isempty()
)else
if(node.right!=null)}}
return paths;
}
leetcode刷題記錄
我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...
LeetCode刷題記錄
動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...
leetcode刷題記錄
工作之餘刷刷題排解下寂寞 1 面試題66.構建乘積陣列 解題思路 題目要求可以簡化為求陣列中任意乙個元素左右兩邊所有元素的乘積。偷懶就用了乙個套路,練習了p c c python class solution def constructarr self,a list int list int 除法是...