【leetcode】111. 二叉树的最小深度(minimum-depth-of-binary-tree)(BFS)[简单]

2023-05-16

链接

https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/

耗时

解题:12 min
题解:3 min

题意

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点。

思路

BFS 层序遍历,在遇到第一个叶节点时,返回当前层数。

时间复杂度: O ( n ) O(n) O(n) n 为二叉树节点数量

AC代码

/**
 * 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) {
        if(root == NULL) return 0;
        
        queue<TreeNode*> q;
        q.push(root);
        int ans = 0;
        while(!q.empty()) {
            ans++;
            int n = q.size();
            for(int i = 0; i < n; ++i) {
                TreeNode* now = q.front();
                q.pop();
                if(now->left == NULL && now->right == NULL) {
                    return ans;
                }
                if(now->left != NULL) q.push(now->left);
                if(now->right != NULL) q.push(now->right);
            }
        }
        
        return ans;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【leetcode】111. 二叉树的最小深度(minimum-depth-of-binary-tree)(BFS)[简单] 的相关文章

  • C:将最小 32 位整数 (-2147483648) 转换为浮点数给出正数 (2147483648.0)

    我正在开发一个嵌入式项目 当时我遇到了一些我认为很奇怪的行为 我设法在键盘上重现它 见下文 以进行确认 但我的机器上没有任何其他 C 编译器可以对其进行尝试 场景 我有一个 define对于 32 位整数可以容纳的最大负值 然后我尝试使用它
  • 将十六进制字符串(hex)转换为二进制字符串

    我发现了以下十六进制到二进制转换的方法 String binAddr Integer toBinaryString Integer parseInt hexAddr 16 虽然此方法适用于较小的十六进制数字 但如下所示的十六进制数字 A14
  • 如何在C++中输出变量的二进制值

    我的 C 编程课上有一项作业 要求编写一个输出变量值的二进制值的函数 例如 如果我将 a 的值设置为字符 我应该得到 a 输出的二进制值 我的 C 教授并不是全世界最伟大的 而且我在使用他给我们的神秘示例来使我的代码正常工作时遇到了困难 现
  • 如何用Java读取.EXE文件的内容

    在 Java 中读取可执行文件有哪些可能的选项和最合适的选项 我想生成 exe 文件的十六进制表示形式 我正在考虑以二进制方式读取文件 然后进行转换 但是我怎样才能读取 exe呢 1 以字节形式读取文件 使用 BufferedInputSt
  • 将 VarBinary RTF blob 转换为 MS SQL 中的文本

    我正在使用 SQL Server 2008 Column Datatype VarBinary RTF 文件被压缩并保存到此 varbinary 列 现在如何使用 SQL 访问和查看 RTF 文件中的数据 它返回这个 弰巎楛 etc 此处尝
  • 从 Process.StandardOutput 捕获二进制输出

    在 C 在 SuSE 上的 Mono 2 8 下运行的 NET 4 0 中 我想运行外部批处理命令并以二进制形式捕获其输出 我使用的外部工具称为 samtools samtools sourceforge net 它可以从称为 BAM 的索
  • Python 2 和 3 中的字符串到字节

    我的函数需要将输入作为字符串或二进制数据 例如 从文件中读取 如果它是一个字符串 我想将其转换为原始数据 bytes or bytearray 在Python 3中 我可以做data bytes data utf8 然而 这在 Python
  • 以 4 为底的二进制 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何将数字从二进制转换为基数 4wi
  • Numpy:给定索引,如何以有效的方式消除沿 axis=1 的最小值?

    给定一个形状为 A 的矩阵 1000000 6 我已经弄清楚如何获取每行的最小最右边值并在此函数中实现它 def calculate row minima indices h h is the given matrix Returns th
  • 反斜杠零分隔符 '\0'

    我见过 0 用作混合二进制文件 UTF8 字符串 二进制数据 中的分隔符 谁能解释一下什么 0 意味着或指向一个好的学习场所 这是空字符 更多信息请参见此维基百科article http en wikipedia org wiki Null
  • x86 32 位汇编代码是否有效 x86 64 位汇编代码?

    所有 x86 32 位汇编代码都对 x86 64 位汇编代码有效吗 我想知道32位汇编代码是否是64位汇编代码的子集 即每个32位汇编代码都可以在64位环境中运行 我想答案是肯定的 因为64位Windows能够执行32位程序 但是后来我看到
  • C++读取二进制文件

    我想了解如何在 C 中读取二进制文件 我的代码 int main ifstream ifd input png ios binary ios ate int size ifd tellg ifd seekg 0 ios beg vector
  • RAM 存储二进制数和汇编语言的冒泡排序

    我必须使用 ARM v7 执行一个例程 在 RAM 内存中存储 10 个二进制数 然后使用冒泡排序对这些数字从高到低进行排序 我应该如何开始 func bubbleSortAscendingU32 ldr r3 r0 4 mov r1 9
  • 深度图三.js

    Three js中有没有办法获取深度图 我感兴趣的是制作类似于 Kinect 为给定场景制作的东西 我遇到了一种不使用颜色和雾来模仿这一点的黑客方法 但这并不理想 因为它会使用两个不同的场景并且会因光照而变化 我认为执行此操作的另一种方法是
  • 如何查找数字的二进制表示形式中 1 的个数?

    从其他搜索中 我发现这个问题被称为 汉明权重 或 人口计数 这么多的统计数据已经给出了很多答案吗 我需要以简单的方式找到解决方案吗 复杂性并不是什么大问题 JavaScript 中是否有像 Java 的 Integer bitCount 这
  • 选择另一个表连接的每行的最小值

    我有下表 Table1 Table2 CardNo ID Record Date ID Name Dept 1 101 8 00 11 7 2013 101 Danny Green 2 101 13 00 11 7 2013 102 Tan
  • GraphQL 中的二进制

    根据关于标量的文档 https graphql org learn schema scalar types在 GraphQL 中 到目前为止还不支持二进制数据 根据上面的页面 可以定义自己的类型 如何在 GraphQL 中实现二进制标量 我
  • 从 56 位二进制字符串创建 DES 密钥

    我有一个 56 位二进制字符串 我想将其用作 DES 加密的密钥 我在JCA文档网站上找到了以下代码 byte desKeyData byte 0x01 byte 0x02 byte 0x03 byte 0x04 byte 0x05 byt
  • 除法和乘法 2 的幂

    我在一篇论文中读到 数字除以 2 的幂并乘以 2 的幂是一个微不足道的过程 我在互联网上搜索了很多解释 但没有得到它 任何人都可以用简单的语言解释一下这实际上意味着什么 从位操作的角度来看 这是微不足道的 乘以2相当于左移1位 除法相当于右
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer

随机推荐