如图所示,我们要找二叉树的最小深度,我们知道,当有节点我们的二叉树就能够继续搜下去,所以我们最短的数是没有儿子节点的,我们没有儿子节点的时候,我们就可以直接返回k,所以我们可以用这个为判断依据。
class Solution {
public:
int minDepth(TreeNode* root) {
queue<TreeNode*>q;
if(root)q.push(root);
int k=0;
while(q.size()){
int n=q.size();
k++;
while(n--){
auto t=q.front();
q.pop();
if(t->left)q.push(t->left);
if(t->right)q.push(t->right);
if(!t->left&&!t->right)return k;
}
}
return k;
}
};