【Breadth-first Search 】513. Find Bottom Left Tree Value
輸入:一顆二叉樹(shù)
輸出:這顆樹(shù)的最下面一層最左邊的節(jié)點(diǎn)值。
分析:
用BFS的思路解決最直觀。讀每一層,在每一層記錄第一個(gè)元素的值。在隊(duì)列中第一層:1;第二層:2,3;第三層 4,5,6。如此繼續(xù)下去。只要保留下第一個(gè)元素的值,即為答案。
分析2:
如果用DFS的思路,先序遍歷樹(shù):1,2,4,3,5,7,6。遍歷過(guò)程中帶著當(dāng)前節(jié)點(diǎn)的層次,每個(gè)層次只記錄下遇到的第一個(gè)值。
初始化:recordLevel=0,value=0。
處理:對(duì)于節(jié)點(diǎn)root,層次level,如果level>recordLevellevel>recordLevellevel>recordLevel,則value=root.val,并且更新recordLevel=levelrecordLevel=levelrecordLevel=level。接著遍歷左右節(jié)點(diǎn)。
代碼
感悟:寫代碼就像寫作一樣。我們寫作之前總是需要多讀書(shū),看別人怎么寫,學(xué)習(xí)寫作技巧。代碼也一樣,多看看別人寫的代碼,才會(huì)發(fā)現(xiàn)“哇,原來(lái)可以這樣做啊”??吹枚嗔?#xff0c;自己才可能會(huì)寫。寫作之前需要有獨(dú)立思考,想明白要寫什么,怎么寫,有個(gè)大致輪廓。那會(huì)老師叫打草稿。有時(shí)候會(huì)寫出來(lái),有時(shí)候打的是腹稿。寫代碼也一樣,寫之前會(huì)先想清楚大概要怎么做,這么做是不是正確。
總結(jié)
以上是生活随笔為你收集整理的【Breadth-first Search 】513. Find Bottom Left Tree Value的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 设计模式系列之十二:单例模式
- 下一篇: 内向的人很难成为群体程序员吗?