原题链接:111. 二叉树的最小深度
思路:
直接层序遍历,遍历一层记录最小深度的遍历depth++
最先遇到叶子节点就代表是最小的深度,直接返回depth即可
全代码:
class Solution {
public:
int minDepth(TreeNode* root) {
queue<TreeNode*> que;
//记录最小深度
int depth = 0;
if(root != NULL) que.push(root);
while(!que.empty())
{
int size = que.size();
//最小深度++
depth++;
for(int i = 0; i < size ;i++)
{
TreeNode* Node = que.front();
que.pop();
if(Node ->left) que.push(Node ->left);//右
if(Node ->right) que.push(Node ->right);//左
//最先碰到叶子结点,为最小深度,直接返回depth即可
if(!Node ->left && !Node ->right) return depth;
}
}
return depth;
}
};