二叉樹的最小深度

2021-07-30 06:56:21 字數 909 閱讀 6156

題目描述:

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

二叉樹的最小深度為根節點到最近葉子節點的距離。

樣例給出一棵如下的二叉樹:

1/     \ 

2       3

/    \

4      5  

這個二叉樹的最小深度為 2

解題思路:

和求解二叉樹的最大深度類似,先判斷根節點是否為空,若為空,返回0;再判斷根節點的左子樹和右子樹是否為空,若同時為空,返回1;若左子樹或者右子樹其中之一為空,則求解不為空子樹的最小深度,然後加1;若左子樹和右子樹都不為空,則比較左子樹和右子樹的最小深度,然後加1,得到二叉樹的最小深度。

**實現:

public:

/*** @param root: the root of binary tree.

* @return: an integer

*/int mindepth(treenode *root) {

// write your code here

if(root==null)

return 0;

if(root->left==null&&root->right==null)

return 1;

if(root->left==null)

return mindepth(root->right)+1;

if(root->right==null)

return mindepth(root->left)+1;

int leftdepth=mindepth(root->left);

int rightdepth=mindepth(root->right);

return leftdepth感想:

求解最小深度,要從根節點多方面考慮,涉及到每一種情況的出現。

二叉樹最小深度

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