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;
}
};
本文详细介绍了如何使用递归方法求解最小深度二叉树的问题,通过在已知的104题基础上进行简单调整,实现了从根节点到最近叶子节点的最短路径长度的计算。
449

被折叠的 条评论
为什么被折叠?



