leetcode Minimum Depth of Binary Tree

来源:互联网 发布:qt 64位 windows 编辑:程序博客网 时间:2024/06/05 10:17

Minimum Depth of Binary Tree

My Submissions
Total Accepted: 70544 Total Submissions: 243160 Difficulty: Easy

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;
}
};

0 0