題目描述:
給定乙個二叉樹,找出其最小深度。
二叉樹的最小深度為根節點到最近葉子節點的距離。
樣例給出一棵如下的二叉樹:
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...