二叉樹的遍歷。採用bfs
和dfs
理論上都可以,這裡採用bfs
。
首先給出bfs
的框架:
// 計算從起點 start 到終點 target 的最近距離
intbfs
(node start, node target)
}/* 劃重點:更新步數在這裡 */
step++;}
}
結合專案的**:
public
intmindepth
(treenode root)
if(curr.left != null)
if(curr.right != null)
} depth++
;//一層遍歷完後,層級自動+1
}return-1
;}
總結:
1.什麼時候用bfs
:常用場景是讓你在一幅【圖】中找到,從起點start
到目標target
的最近距離,比如此題,不過它的target
不是形參,而是嵌入在**中。
2.bfs
是有可套用框架的。
3.bfs
常用的資料結構是佇列
。
4.bfs
意思著重在橫向。
技術參考:labuladong
二叉樹最小深度
最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。遞迴,若為空樹返回0 若左右子樹都為空,則返回 1 若左子樹為空,則返回右子樹的最小深度 1 若右子樹為空,則返回左子樹的最小深度 1 若左右子樹均不為空,則取左 右子樹最小深度的較小值,1 definition for a binary tr...
二叉樹的最小深度
題目 給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的距離。樣例給出一棵如下的二叉樹 1 2 3 4 5 這個二叉樹的最小深度為 2 思路 開始以為和求最大深度似的乙隻去深度最小,後來想想不對。要處理節點的左子樹是空或者右字樹是空的情況,而且每次處理的方式相同,提示我運用遞迴...
二叉樹的最小深度
給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的距離。樣例 給出一棵如下的二叉樹 1 2 3 4 5 這個二叉樹的最小深度為 2 class solution if root right null root left null p mindepth root left 1 q...