【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)[简单] 的相关文章

  • 什么是低位和高位?

    谁能告诉我什么是低位和高位 如何识别高位和低位 下面是二进制形式 如何0110里面有更高位吗 0110 0111 1100 1010 1100 0111 1001 1011 就像十进制一样 二进制中较高位通常写在左侧 所以如果你看到0111
  • 选择另一个表连接的每行的最小值

    我有下表 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
  • Java 数组中的最小值和最大值

    我的代码没有给出错误 但它没有显示最小值和最大值 代码是 Scanner input new Scanner System in int array new int 10 System out println Enter the numbe
  • GraphQL 中的二进制

    根据关于标量的文档 https graphql org learn schema scalar types在 GraphQL 中 到目前为止还不支持二进制数据 根据上面的页面 可以定义自己的类型 如何在 GraphQL 中实现二进制标量 我
  • 是否存在 UTF-8 编码中未使用的字节?

    据我了解 UTF 8 是 ASCII 的超集 因此包括不用于表示可打印字符的控制字符 我的问题是 是否有任何字节 256 个不同的字节 未被 UTF 8 编码使用 我想知道你是否可以转换 编码UTF 8 文本转二进制 这是我的思考过程 我不
  • 如何从 wfstream 读取二进制数据?

    我从文件读取数据时遇到一个小问题 我希望能够读取 wstring 以及任意大小的原始数据块 大小以字节为单位 std wfstream stream file c str std wstring comType stream gt gt c
  • 二进制增量存储

    我正在寻找一种二进制增量存储解决方案来版本化大型二进制文件 数字音频工作站文件 使用 DAW 文件时 与用于存储原始数据 波形 的大量数据相比 大多数更改 尤其是在混音结束时 都非常小 如果我们的 DAW 文件有一个版本控制系统 让我们可以
  • 计算数字的二进制表示形式中 1 的数量的最佳方法。 (MIPS)

    我需要计算二进制数中 1 的数量 比如说 5 所以 00001001 将是 2 或 n 2 我正在使用 MIPS 最好的方法来做到这一点 最好的方法是count them 您可以检查是否设置了最低有效位 a1 by and用一个来代替它 如
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 在 Matlab 中保存 Kinect 深度图像?

    通过使用 Kinect 我可以获得深度图像 其中每个深度图像像素存储相机和物体之间的距离 以毫米为单位 现在我想保存它们以便以后使用 最好的推荐是什么 我正在考虑将深度图像保存为图像 jpg png等 然而 该值通常是从50毫米到10000
  • 如何计算嵌套对象的深度?

    我有一个嵌套对象的示例数组 let arr id 0 children id 1 children id 2 children id 3 children id 4 children 我需要计算每个对象的深度级别 在所有对象中我也有一个pa
  • 从 r 中的多个列表创建二进制(存在/不存在)数据矩阵

    我有一系列不同长度的单独变量列表 字符串 我想将它们组合成一个数据帧以形成存在 1 不存在 0 矩阵 鉴于它们的长度不同 我什至不知道如何创建初始数据框 这是我的例子 data1 lt c a b c d e f data2 lt c e
  • 在 R 中读入原始二进制数据并将其转换为整数

    我有一个二进制文件 其中包含编码为不同长度 主要是 2 4 字节 的有符号或无符号整数的数值 为了处理这些数据 我将文件的所需部分读取为raw向量与readBin 然后尝试将其转换为十进制 问题是 R的内置函数有限制 我不太明白 比如没有l
  • 使用 STL 算法与容器(char * 除外)进行 C++ 二进制文件 I/O

    我正在尝试使用 STL 复制算法对二进制文件 I O 进行简单测试 以将数据复制到容器和二进制文件中 从容器和二进制文件中复制数据 见下文 1 include
  • 查找所有n位相邻数字为1的n位二进制数[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 让我用一个例子来解释一下 如果n 4
  • Python:二进制/十六进制字符串转换?

    我有一个同时包含二进制和字符串字符的字符串 我想先将其转换为二进制 然后转换为十六进制 字符串如下 lt 81 gt Q lt 81 gt Q G Q A S A V lt 83 gt Cd lt 80 gt lt 99 gt N A j
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • 将浮点数 1864.78 转换为二进制和 IEEE 格式

    我一直在尝试将 S P 500 的值 今天为 1864 78 转换为它在内存中以 IEEE 单精度格式表示的方式 转换小数点左边 1864 很容易 11101001000 但如何获得十进制 78 的二进制表示形式呢 我尝试使用该技术 但它会
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 为什么使用 reqwest 下载的 PNG 图像的字节与使用 Python 下载的不同?

    我正在尝试使用 reqwest 库来下载 PNG 文件 但是当我下载它时 我看到了其他编程语言的奇怪行为 例如 Python 例如 let content reqwest get https www google es images sea

随机推荐