二叉树的最小深度
这个题的意思是要求
最小深度是从根节点到最近叶子节点的最短路径上的节点数量
解释几个问题:
深度从0开始不是从1开始
所以为啥最后加1是因为以实际出发ans
然后前面的两个if是以加1是加的是此时子结点
class Solution {
public:
int getDepth(TreeNode*root)//确定函数参数以及类型
{
if(root==NULL) return 0;//确定终止条件
int ld=getDepth(root->left);//确定单层递归条件下面
int rd=getDepth(root->right);
if(root->left==NULL&&root->right!=NULL)
{
return 1+rd;
}
if(root->right==NULL&&root->left!=NULL)
{
return 1+ld;
}
int ans=1+min(ld,rd);
return ans;
}
int minDepth(TreeNode* root) {
return getDepth(root);
}
};