//QQ:54573339;
此代码是盗用yxc大神的代码;
我自己不会写这种递归性的代码;
本题就是给你一棵二叉树,让你求其最小的深度
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int minDepth(TreeNode* root)
{
if(root==NULL)//如果当前根节点为空的话,返回0
{
return 0;
}
int left=minDepth(root->left);//求出左子树的长度
int right=minDepth(root->right);//求出右子树的长度
if(left==0||right==0)//如果当前节点的做节点为空或者右节点为空的话,则返回left+right+1;
{
return left+right+1;
}
return min(left,right)+1;//返回左子树的高度和右子树的高度最小值+1;
}
};