标题叙述性说明:
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.
代码:
int Solution::minDepth(TreeNode *root)
{
int min_height = 0;
queue<pair<TreeNode *,int> > treeNode_queue;
if(root == NULL)
return 0;
treeNode_queue.push(pair<TreeNode *,int>(root,1));
while(!treeNode_queue.empty())
{
pair<TreeNode *,int> node = treeNode_queue.front();
treeNode_queue.pop();
if(node.first->left == NULL && node.first->right == NULL)
{
min_height = node.second;
break;
}
if(node.first->right != NULL)
treeNode_queue.push(pair<TreeNode *,int>(node.first->right,node.second+1));
if(node.first->left != NULL)
treeNode_queue.push(pair<TreeNode *,int>(node.first->left,node.second+1));
}
return min_height;
}