0
点赞
收藏
分享

微信扫一扫

LeetCode_111 二叉树的最小深度

草原小黄河 2022-03-22 阅读 55
leetcode

1、题目:二叉树的最小深度

2、解题思路

需要找到最小深度,只需要一层一层往下遍历,找到第一个叶子节点直接返回当前深度即可,所以在层序遍历的基础上改写代码。

LeetCode_102 二叉树的层序遍历_W__winter的博客-CSDN博客

3、代码

class Solution 
{
public:
    int minDepth(TreeNode* root) 
    {
        queue<TreeNode*> que;
        if (root != NULL) 
            que.push(root);
        int deep = 0;
        while (!que.empty()) 
        {
            int size = que.size();
            deep++;
            // 这里一定要使用固定大小size,不要使用que.size(),因为que.size是不断变化的
            for (int i = 0; i < size; i++) 
            {
                TreeNode* node = que.front();
                que.pop();
                
                if (node->left || node->right) 
                {
                    if (node->left) 
                        que.push(node->left);;
                    if (node->right) 
                        que.push(node->right);
                }               
                else 
                    return deep;
            }           
        }
        return deep;
    }
};
举报

相关推荐

0 条评论