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.
这个题目只需在leetcode第104题的基础上加一句
if (levelNode[0]->left == NULL && levelNode[0]->right == NULL)
return result;
因为第104题是返回最长的,而104题中是一层一层访问树的,那么最先遇到的叶节点就是最短的那个路劲
/**
* 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)
{
int result = 0;
vector<TreeNode*> levelNode;
if (root == NULL)
return 0;
int levelNum = 1, nextlevel = 0;
levelNode.push_back(root);
while (!levelNode.empty())
{
result++;
for (int i = 0; i < levelNum; i++)
{
if (levelNode[0]->left == NULL && levelNode[0]->right == NULL)
return result;
if (levelNode[0]->left != NULL)
{
nextlevel++;
levelNode.push_back(levelNode[0]->left);
}
if (levelNode[0]->right != NULL)
{
levelNode.push_back(levelNode[0]->right);
nextlevel++;
}
levelNode.erase(levelNode.begin());
}
levelNum = nextlevel;
nextlevel = 0;
}
return result;
}
};