/* 在此题中使用BFS算法(层次遍历)的思想来解决此问题
每次都将一层的节点加入到队列中,直到发现节点为叶子结点
返回最最小深度depth即可 */
class Solution {
public:
int minDepth(TreeNode* root) {//BFS
queue<TreeNode *>q;
if(root == NULL)return 0;
int depth = 1;
q.push(root);
while(!q.empty()){
int sz = q.size();
for(int i=0;i<sz;i++){
TreeNode *t = q.front();
q.pop();
if(t->left == NULL&&t->right == NULL){
return depth;
}
if(t->left != NULL){
q.push(t->left);
}
if(t->right != NULL){
q.push(t->right);
}
}
depth++;
}
return depth;
}
};