374,二叉樹的最小深度

2022-09-18 09:42:12 字數 1190 閱讀 9701

給定乙個二叉樹,找出其最小深度。

最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。

說明: 葉子節點是指沒有子節點的節點。

示例:給定二叉樹 [3,9,20,null,null,15,7],

返回它的最小深度 2。

問題分析:

這題其實不難,看到這道題我們首先想到的是bfs,就是一層一層的遍歷,如果某一層的某個節點沒有子節點了,我們就返回這個節點的層數即可。

比如上面的9在第二層,他沒有子節點了,我們直接返回他所在的層數2即可,沒必要在遍歷第3層了。**很簡單,我們來看下。

01

非遞迴寫法

public

intmindepth

(treenode root)

}return-1

;}

02遞迴寫法

我們還可以使用遞迴的方式,返回math.min(左子樹的深度,右子樹的深度)+1,看起來很有道理,但有乙個問題,如果左右子樹都不為空或者都為空是沒問題的。但如果左右子樹乙個為空乙個不為空,就會有問題了,因為為空的那個子節點的深度是0,我們不能用它,所以這裡要有個判斷。

比如下面7的左子樹的深度是0,但他還有右子樹,所以我們不能選擇深度最小的(因為這時7的左子樹的深度是0)。

或者我們還可以換種方式

二叉樹最小深度

最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。遞迴,若為空樹返回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...