二叉樹的最小深度

2021-10-18 22:29:46 字數 1238 閱讀 3596

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

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

說明:

葉子節點是指沒有子節點的節點。

示例 1:

輸入:root = [3,9,20,null,null,15,7]

輸出:2

示例 2:

輸入:root = [2,null,3,null,4,null,5,null,6]

輸出:5

本題有多種寫法,殊途同歸都是用的遞迴

二叉樹的定義:

/**

* definition for a binary tree node.

* struct treenode

* treenode(int x) : val(x), left(nullptr), right(nullptr) {}

* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}

* };

*/

方法一:

class

solution

}

方法二:

class

solution

}

方法三:

class

solution

// 計算左子樹的深度

int left =

mindepth

(root.left)

;// 計算右子樹的深度

int right =

mindepth

(root.right)

;// 如果左子樹或右子樹的深度不為 0,即存在乙個子樹,那麼當前子樹的最小深度就是該子樹的深度+1

// 如果左子樹和右子樹的深度都不為 0,即左右子樹都存在,那麼當前子樹的最小深度就是它們較小值+1

return

(left ==

0|| right ==0)

? left + right +

1: math.

min(left, right)+1

;}}

二叉樹最小深度

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