给定一个二叉树,找出其最小深度。
   二叉树的最小深度为根节点到最近叶子节点的距离。
  
 
  
 样例 
  
  
 
   
  
如有疑问可以留言交流
 
   
  
                给出一棵如下的二叉树:
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
     */
     
     void DFSUtill(TreeNode *root,int count,int &min){
         count++;
         if(root->left==NULL&&root->right==NULL){
             if(count < min)
                min=count;
         }
         else{
          if(root->right!=NULL)
            DFSUtill(root->right,count,min);
          if(root->left!=NULL){
             DFSUtill(root->left,count,min);
         }
         }
         
     }
     
    int minDepth(TreeNode *root) {
        // write your code here 
        int min=10000;
        int count=0;
        if(!root)
        return 0;
        DFSUtill(root,count,min);
        return min;
        
    }
    
};如有疑问可以留言交流
 
                   
                   
                   
                   
                             本文介绍了一种使用深度优先搜索算法来寻找给定二叉树最小深度的方法。通过递归遍历左子树和右子树,直到找到最近的叶子节点,从而计算出从根节点到该叶子节点的距离。
本文介绍了一种使用深度优先搜索算法来寻找给定二叉树最小深度的方法。通过递归遍历左子树和右子树,直到找到最近的叶子节点,从而计算出从根节点到该叶子节点的距离。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                  
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            