leetcode111Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
Subscribe to see which companies asked this question
通过队列保存树的每个节点,使用一个变量记录当前层的节点个数,每遍历完一层深度加1,当遇到叶节点的时候返回深度即可,比较简单的题目。
/**
* 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)
{
return 0;
}
queue<TreeNode*> qt;
qt.push(root);
int deep = 1;
int count = 1;
while (!qt.empty())
{
TreeNode * t = qt.front();
qt.pop();
count--;
if (t->left == NULL && t->right == NULL)
{
return deep;
}
if (t->left)
{
qt.push(t->left);
}
if (t->right)
{
qt.push(t->right);
}
if (count == 0)
{
count = qt.size();
deep++;
}
}
return deep;
}
};