标题叙述性说明:
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.
思路:採用BFS遍历二叉树,在遍历的过程中记录每一个节点的深度,当遇到第一个叶子结点时返回当前叶子结点的深度。
代码:
int Solution::minDepth(TreeNode *root){ int min_height = 0; queue> treeNode_queue; if(root == NULL) return 0; treeNode_queue.push(pair (root,1)); while(!treeNode_queue.empty()) { pair 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 (node.first->right,node.second+1)); if(node.first->left != NULL) treeNode_queue.push(pair (node.first->left,node.second+1)); } return min_height;}