1. 程式人生 > >【Breadth-first Search 】513. Find Bottom Left Tree Value

【Breadth-first Search 】513. Find Bottom Left Tree Value

輸入:一顆二叉樹
輸出:這顆樹的最下面一層最左邊的節點值。
分析:在這裡插入圖片描述

用BFS的思路解決最直觀。讀每一層,在每一層記錄第一個元素的值。在佇列中第一層:1;第二層:2,3;第三層 4,5,6。如此繼續下去。只要保留下第一個元素的值,即為答案。

分析2:
 如果用DFS的思路,先序遍歷樹:1,2,4,3,5,7,6。遍歷過程中帶著當前節點的層次,每個層次只記錄下遇到的第一個值。
 初始化:recordLevel=0,value=0。
 處理:對於節點root,層次level,如果 l e

v e l > r e c o r d L
e v e l level>recordLevel ,則value=root.val,並且更新 r e
c o r d L e v e l = l e v e l recordLevel=level
。接著遍歷左右節點。

程式碼

感悟:寫程式碼就像寫作一樣。我們寫作之前總是需要多讀書,看別人怎麼寫,學習寫作技巧。程式碼也一樣,多看看別人寫的程式碼,才會發現“哇,原來可以這樣做啊”。看得多了,自己才可能會寫。寫作之前需要有獨立思考,想明白要寫什麼,怎麼寫,有個大致輪廓。那會老師叫打草稿。有時候會寫出來,有時候打的是腹稿。寫程式碼也一樣,寫之前會先想清楚大概要怎麼做,這麼做是不是正確。