二叉樹的最小深度

問題描述:

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

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

樣例

給出一棵如下的二叉樹:

        1

     /     \ 

   2       3

          /    \

        4      5  

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

解題思路:

分情況考慮,首先是空樹的情況,然後只有一個節點的情況,然後考慮有其他情況,用遞歸來寫。

代碼:

/**
 * Definition of TreeNode:
 * class TreeNode {
 * public:
 *     int val;
 *     TreeNode *left, *right;
 *     TreeNode(int val) {
 *         this->val = val;
 *         this->left = this->right = NULL;
 *     }
 * }
 */
class Solution {
public:
    /**
     * @param root: The root of binary tree.
     * @return: An integer
     */
    int minDepth(TreeNode *root) {
       if(root==NULL) return 0;
       if(root->left==NULL&&root->right==NULL) return 1;
      
       if(root->left==NULL){
         return minDepth(root->right)+1;
       }
        else if(root->right==NULL){
        return minDepth(root->left)+1;
        }
        else{
        int d=minDepth(root->left)+1;
        int e=minDepth(root->right)+1;
           if(e>d) return d;
               else return e;}
          
       // write your code here
    }
};

感悟:

注意分情況時要全面考慮

發佈了49 篇原創文章 · 獲贊 0 · 訪問量 5008
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章