自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 力扣130. 被围绕的区域(深度、广度遍历、递归、C++)

整体思路是从矩阵的边界开始进行广度优先搜索,将所有与边界相连的字符'O'标记为字符'A',表示不会被改变的区域。然后再遍历整个矩阵,将字符'O'改为字符'X',将字符'A'改回字符'O',即实现了将被围绕的区域替换为'X'的要求。整体思路是从矩阵的边界开始进行DFS搜索,将所有与边界相连的字符'O'标记为字符'A',表示不会被改变的区域。然后再遍历整个矩阵,将字符'O'改为字符'X',将字符'A'改回字符'O',即实现了将被围绕的区域替换为'X'的要求。解法一:深度优先遍历。解法二:广度优先遍历。

2024-08-13 19:05:22 829

原创 力扣200. 岛屿数量(深度、广度遍历、矩阵、数组)C++

具体实现是通过递归调用dfs函数来进行遍历,对当前位置上、下、左、右四个方向进行检查,如果相连的位置是陆地(即字符为'1'),则继续递归调用dfs函数。如果当前位置是岛屿(即字符为'1'),则将岛屿数量加1,并调用dfs函数将与该岛屿相连的所有陆地都标记为水域。整个算法的思路是利用广度优先搜索来遍历矩阵中的每个岛屿,并将与其相连的陆地都标记为水域,从而统计出岛屿的数量。整个算法的思路是利用深度优先搜索来遍历矩阵中的每个岛屿,并将与其相连的陆地都标记为水域,从而统计出岛屿的数量。最后,函数返回岛屿数量。

2024-08-13 16:59:44 383

原创 力扣98. 验证二叉搜索树(递归、中序遍历、C++)

此时,从栈中弹出一个节点,此节点为当前子树的最左下角的节点。如果当前节点为空且栈为空,说明遍历完成,整个树是有效的二叉搜索树,返回。最后,将左子树和右子树的结果进行与操作,如果有任何一个子树不是有效的二叉搜索树,整个树就不是有效的二叉搜索树。这种方法使用了中序遍历的方式,通过比较前一个节点和当前节点的值的大小关系来判断是否为有效的二叉搜索树。然后,判断当前节点的值是否在允许的范围内,如果不在范围内,说明当前子树不是有效的二叉搜索树,返回。首先,如果当前节点为空,说明当前子树是有效的二叉搜索树,返回。

2024-08-13 16:16:59 293

原创 力扣230. 二叉搜索树中第 K 小的元素

代码的时间复杂度平均情况下为O(logN),最坏情况下为O(N),其中N为二叉搜索树的节点数。空间复杂度平均情况下为O(logN),最坏情况下为O(N),其中N为二叉搜索树的节点数。这段代码的时间复杂度为O(logN),其中N为二叉搜索树的节点数。空间复杂度为O(N),其中N为二叉搜索树的节点数,主要用于保存每个节点的子节点数量。这段代码实现了在二叉搜索树中找到第K小的元素。这段代码实现了在二叉搜索树中找到第K小的元素。来找到第K小的元素,并返回结果。给定一个二叉搜索树的根节点。小的值,你将如何优化算法?

2024-08-13 15:23:39 730

原创 力扣530. 二叉搜索树的最小绝对差

在dfs函数中,首先判断如果当前节点为空,直接返回。接着判断如果pre的值为-1,表示当前节点是二叉搜索树中最小的节点,将pre的值设为当前节点的值。否则,计算当前节点值与pre的差值,并更新ans为差值的最小值,然后将pre的值设为当前节点的值。实际上,这段代码利用了二叉搜索树的性质,即中序遍历二叉搜索树会得到一个递增的序列。所以在中序遍历过程中,只需要比较当前节点和前一个节点的差值,并更新最小差值即可。该函数的参数包括当前节点root,前一个节点的值pre和最小差值ans。给你一个二叉搜索树的根节点。

2024-08-13 13:23:54 215

原创 力扣103. 二叉树的锯齿形层序遍历(树、广度优先搜索、二叉树)C++

整体思路就是利用队列实现层次遍历,并通过一个bool变量记录当前层的遍历顺序,通过双端队列来实现每层的节点值的插入位置不同。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

2024-08-08 17:29:33 415

原创 力扣199. 二叉树的右视图C++、二叉树

在每一次循环中,首先获取节点栈的顶部节点node和深度栈的顶部深度depth,并将其弹出栈。这个算法的思路是通过遍历二叉树并记录每个深度上最右边的节点的值,然后将这些值按照深度的顺序存储在结果vector中,即为二叉树的右视图。这样,在下一次循环中,就可以从栈中取出下一层级的节点。然后,使用一个for循环,从深度0到最大深度遍历,将unordered_map中对应深度的节点值添加到rightView中。接着,判断是否为当前层级的最后一个节点,如果是,则将该节点的值node->val加入到结果集ans中。

2024-08-08 16:07:18 870

原创 力扣236. 二叉树的最近公共祖先

中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(在递归函数中,先判断当前节点是否有左子树和右子树,如果有则分别记录它们的父节点,并递归调用。这段代码实现了在二叉树中找到两个节点的最近公共祖先节点。节点的值,那么当前节点就是最近公共祖先节点。开始,一直向上遍历到根节点,每次判断节点。开始,一直向上遍历到根节点,每次将节点。指向当前节点,更新最近公共祖先节点。,用来构建节点和父节点的映射关系。

2024-08-08 11:04:44 954

原创 力扣173. 二叉搜索树迭代器

然后将栈顶元素弹出,获取其值,并将当前节点指针指向弹出节点的右子节点,用于下一次调用。通过上述的迭代器,可以按照升序访问二叉搜索树的节点值,时间复杂度为O(n),其中n为二叉搜索树的节点个数。通过上述的迭代器,可以按照升序访问二叉搜索树的节点值,时间复杂度为O(n),其中n为二叉搜索树的节点个数。迭代器的构造函数接收一个二叉搜索树的根节点作为参数,并通过中序遍历将二叉搜索树的节点值存储在数组。迭代器的构造函数接收一个二叉搜索树的根节点作为参数,并将当前节点指针。// 返回 True。// 返回 True。

2024-08-05 11:15:14 781

原创 力扣129. 求根节点到叶节点数字之和(树、深度优先搜索、二叉树)C++

如果左子节点和右子节点都为空,说明当前节点是叶子节点,将当前路径的数字加入总和。如果左子节点不为空,将左子节点和当前路径的数字*10+左子节点的值分别放入。如果右子节点不为空,将右子节点和当前路径的数字*10+右子节点的值分别放入。这样,函数就可以计算出二叉树中从根节点到叶子节点的所有路径的数字之和。首先,判断根节点是否为空,如果是,则返回0。分别获取当前节点的左子节点和右子节点。中取出待处理的节点和当前路径的数字。计算从根节点到叶节点生成的。将根节点和根节点的值分别放入。是指没有子节点的节点。

2024-08-02 16:28:48 514

原创 力扣114. 二叉树展开为链表(栈、树、深度优先搜索、链表、二叉树)

该算法的核心思想在于使用迭代前序遍历来访问二叉树的节点,并在遍历过程中将节点存储到一个vector中。之后,通过修改节点的左、右子树指针,将二叉树转换为链表。这种方法在空间复杂度和时间复杂度上都是高效的。解法三:/*** int val;* };*/public:if (root == nullptr) // 如果根节点为空,直接返回return;// 使用栈进行迭代// 用于记录前一个访问的节点// 根节点入栈// 当栈不为空时,继续遍历while (!// 获取栈顶节点。

2024-08-02 15:42:37 718

原创 力扣117. 填充每个节点的下一个右侧节点指针 II

给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化输出按层序遍历顺序(由 next 指针连接),'#' 表示每层的末尾。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为。初始状态下,所有 next 指针都被设置为。解法一:直接用next解。

2024-08-02 11:30:01 218

原创 力扣105. 从前序与中序遍历序列构造二叉树()

类似地,确定前序遍历的右子树区间和中序遍历的右子树区间,递归调用myBuildTree函数构建右子树,并将返回的右子树根节点指针赋给当前根节点的右指针。接下来,计算左子树的大小,即中序遍历中根节点左边的节点个数,然后根据左子树的大小,确定前序遍历的左子树区间和中序遍历的左子树区间。然后,根据前序遍历的左边界,找到当前根节点的值,并在中序遍历结果中找到该值对应的索引,这样就可以确定当前的根节点。然后,递归调用myBuildTree函数构建左子树,并将返回的左子树根节点指针赋给当前根节点的左指针。

2024-07-31 17:10:53 248

原创 力扣86. 分隔链表()

这段代码的思路是使用两个新的链表,一个用来存储小于x的节点,一个用来存储大于等于x的节点。这段代码的思路是将链表分为两段,一段是小于x的节点,一段是大于等于x的节点。接下来再通过一个循环,如果当前节点的下一个节点小于x,则将该节点插入到。然后通过一个循环,找到第一个大于等于x的节点,将。如果当前节点的下一个节点大于等于x,则将。链表的最后一个节点指向nullptr,将。节点的next即可得到分隔后的链表。,分别指向两个链表的最后一个节点。节点的下一个节点之间,并更新。指向该节点的前一个节点,将。

2024-07-31 15:55:00 267

原创 力扣61. 旋转链表(链表、双指针)

旋转链表,将链表每个节点向右移动。给你一个链表的头节点。

2024-07-31 15:19:07 225

原创 力扣82. 删除排序链表中的重复元素 II(链表、双指针)

由于头节点可能要改动,所以我们这里用了一个dummy变量来防止多余的逻辑运算,这里dummy的下一个结点就是head结点,首先用一个移动指针指向dummy,然后进入while循环,这里注意判断条件, cur.next 以及 cur.next.next 可能为空节点,如果不加以判断,可能会产生运行错误。如果cur结点的下一个结点和下下个结点相同,那么记录下一个结点的值,再用一个while循环删除与该值相等的结点,如果不相同,那么将cur指针指向该节点,最后返回dummy的下一个结点即可。

2024-07-31 10:00:34 276

原创 力扣19. 删除链表的倒数第 N 个结点(链表、双指针)C++

总结: 该算法通过遍历链表两次的方式,找到要删除的节点的前一个节点,并进行删除操作。在第二次遍历中,找到要删除节点的前一个节点,并将其next指针指向要删除节点的下一个节点,完成删除操作。总结: 该算法通过使用栈来逆序存储链表节点,并在弹出栈顶节点时找到要删除的节点的前一个节点,完成删除操作。将要删除节点的前一个节点的next指针指向要删除节点的下一个节点,完成删除操作。弹出的节点prev的next指针指向要删除节点的下一个节点,完成删除操作。此时,second指针指向的节点为要删除的节点的前一个节点。

2024-07-29 16:46:14 841

原创 力扣92. 反转链表 II()

然后调用递归函数,将当前节点的next指针指向当前节点的前一个节点,然后将当前节点的next指针设为nullptr。然后将pre节点的next设为nullptr,将right节点的next设为nullptr,这样可以将需要反转的区间与链表断开。然后使用一个循环,循环条件是i从left取到right-1,每次循环,将cur的next指针指向next->next,即将next节点从链表中断开并跳过。然后将next的next指针指向prev的next,即将next节点放到prev节点的后面。

2024-07-29 15:30:12 504

原创 力扣138. 随机链表的复制(哈希表、链表)

如果原链表节点的random指针不为空,则将新链表节点的random指针指向原链表节点random指针的next节点,否则为NULL。对于当前节点node,将node的next指针指向node的next的next节点,同时将newnode的next指向newnode的next的next节点。主要思路是在原链表的每个节点后面插入一个新的节点,然后根据原链表节点的random指针,设置新链表节点的random指针,最后将新链表从原链表中分离出来。节点组成,其中每个新节点的值都设为其对应的原节点的值。

2024-07-29 13:45:31 962

原创 力扣21. 合并两个有序链表(递归、链表)C++

如果list1当前节点的值小于list2当前节点的值,将list1的下一个节点指向两个链表剩余部分的合并结果,即调用递归函数mergeTwoLists(list1->next, list2);比较list1和list2当前节点的值,如果list1当前节点的值小于list2当前节点的值,将prev的后继指针指向list1的当前节点,然后将list1指针指向下一个节点;函数的输入是两个指向链表头节点的指针list1和list2,返回合并后的链表的头节点。新链表是通过拼接给定的两个链表的所有节点组成的。

2024-07-29 11:15:35 293

原创 力扣2. 两数相加(递归、链表、数学)C++

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。

2024-07-29 10:33:32 165

原创 力扣141. 环形链表(哈希表、链表、双指针)C++

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。仅仅是为了标识链表的实际情况。,判断链表中是否有环。给你一个链表的头节点。

2024-07-29 09:56:33 223

原创 高精度加法C++

首先,定义了一个函数add,该函数接受两个参数A和B,两者分别表示要相加的两个大整数。接下来,通过遍历A的每一个元素,并累加相应位置上的元素,同时也累加B中相同位置上的元素(如果B的长度没有超过A,则加0)。将累加结果取余10,并将余数插入到C中,然后将累加结果除以10,得到进位值。在主函数中,首先定义了两个string类型的变量a和b,用于接收用户的输入。然后,定义了两个vector类型的变量A和B,用于存储转换后的大整数。然后,调用add函数,将A和B作为参数传入,得到两个大整数相加的结果。

2024-07-28 16:27:20 124

原创 力扣135. 分发糖果(贪心、数组)

如果不同,则根据前一个孩子的糖果数量+1设置当前孩子的糖果数量。这里一定要注意当inc==dec时,dec还要加1,比如2 2 1,这里进行到下标2时候,inc=1,dec=1,如果不进行上述操作,那么最终结果就是3,所以一定要记得dec再+1.因为这个代码只是从左往右对比,没有再从右往左比一次,所以这个操作是不能忽略的。对于每个孩子,如果他的评级大于前一个孩子的评级,那么他的糖果数是前一个孩子的糖果数加一;对于每个孩子,如果他的评级大于后一个孩子的评级,那么他的糖果数是right的值加一;

2024-07-28 15:58:09 293

原创 力扣224. 基本计算器(栈、递归、数学、字符串)C++

代码采用了栈来保存符号,并使用符号来控制数字的正负。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如。这样就可以按照给定字符串表达式的规则计算出最终的值了。,请你实现一个基本计算器来计算并返回它的值。给你一个字符串表达式。

2024-07-28 15:14:40 381

原创 力扣150. 逆波兰表达式求值(栈、数组、数学)C++

根据题目提示遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中即可。该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。返回一个表示表达式值的整数。

2024-07-28 14:32:04 229

原创 力扣155. 最小栈

-> 返回 -3.minStack.getMin();--> 返回 -2.minStack.top();操作,并能在常数时间内检索到最小元素的栈。解法二:用vector实现。解法一:无脑用辅助栈。

2024-07-28 14:05:09 303

原创 力扣71. 简化路径(栈、字符串)C++

首先定义了一个 lambda 函数 split,用于将字符串按照指定的分隔符分割成子字符串,并存放在一个字符串向量中。使用 split 函数将输入的路径字符串按照 "/" 分割成多个子字符串,并存放在 names 向量中。否则,遍历栈中的每个元素,将其添加到 ans 中,并在每个元素前面添加一个 "/"。如果栈为空,则表示路径是根目录,将根目录的符号 "/" 添加到 ans 中。从根目录向上一级是不可行的,因为根目录是你可以到达的最高级。构造一个空的字符串 ans 用于存放简化后的路径。

2024-07-28 12:08:48 412

原创 力扣452. 用最少数量的箭引爆气球(贪心、数组、排序)C++

这个代码和上述代码不同的核心在于sort排序这里,我们是用结束位置来进行升序处理,那么在for循环的时候当该气球的首位小于射程的结束位置的时候我们可以直接不考虑更新end,这是因为我们排序是按照末位排序的,所以当气球的起始位置在我们设定end的气球后面的时候,这个气球的结束位置也必定是大于end的,所以不用去考虑end取最小值,他本来就是最小射程了,所以这里只需要考虑当气球的起始位置大于射程时更新射程和增加箭数就可以了;- 在x = 2处发射箭,击破气球[1,2]和[2,3]。可以射出的弓箭的数量。

2024-07-27 20:14:20 306

原创 力扣57. 插入区间(数组C++)

升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。你可以创建一个新数组然后返回它。按照区间起始端点排序的区间列表。表示另一个区间的开始和结束。个区间的开始和结束,并且。

2024-07-27 16:36:44 266

原创 快速选择第k小的代码练习C++

循环结束后,根据j-l+1(即左边界到j的距离加1)与k的大小关系,判断应该继续在左边界到j的区间内找第k小的元素,还是在j+1到右边界的区间内找第k-(j-l+1)小的元素。参数l表示当前排序区间的左边界,r表示当前排序区间的右边界,k表示要找的第k小的元素。接着,定义了两个指针i和j,分别指向排序区间的左边界和右边界,并找到数组中间位置的元素x(使用位运算右移1位的方式)。在函数内部,先判断如果左边界大于等于右边界,则直接返回q[l],表示当前只有一个元素,无需再排序。然后,定义了一个全局数组q。

2024-07-27 15:39:55 239

原创 快速排序代码练习C++

在quick_sort函数中,我们选择数组中的一个元素作为基准值x(这里选择的是数组中间位置的元素),然后定义两个指针i和j,分别指向数组的最左端和最右端。接下来,我们将数组分为两部分,左部分是小于基准值的元素,右部分是大于基准值的元素。整个过程可以看作是一个递归的过程,每一次递归都将当前部分划分为两部分,直到划分的部分只有一个元素或者没有元素,此时递归结束,排序完成。如果i<j,意味着找到了一个需要交换的元素,我们交换这两个元素的位置,然后继续执行下一轮的循环。最后,我们输出排序后的数组。

2024-07-27 15:36:29 159

原创 力扣56. 合并区间

整个函数的时间复杂度是O(nlogn),其中n是区间的个数。排序的时间复杂度是O(nlogn),遍历区间的过程中,每个区间只会被合并一次,所以合并的时间复杂度是O(n)。空间复杂度是O(n),即存储合并后的区间的数组。函数对区间数组进行排序,排序的依据是区间的起始位置。接下来从第二个区间开始遍历排序后的区间数组。中最后一个区间的结束位置更新为两个区间结束位置的最大值。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。中最后一个区间的结束位置,说明这两个区间可以合并。将排序后的数组的第一个区间放入。

2024-07-27 15:33:48 171

原创 洛谷A - 并查集 LibreOJ - 109

由于本题数据较大,因此输出的时候采用特殊的输出方式:用 00 或 11 代表每个询问的答案,将每个询问的答案依次从左到右排列,把得到的串视为一个二进制数,输出这个二进制数 mod 998244353mod 998244353 的值。它维护了一个集合的划分,每个集合通过一个代表元素来表示,可以高效地进行合并和查询两个元素是否在同一个集合中的操作。函数来查找元素所在集合的代表元,该函数使用了路径压缩的优化技巧,在查找过程中会将经过的节点的父节点直接更新为集合的代表元,以提高后续查询操作的效率。

2024-07-26 17:22:24 452

原创 力扣228.汇总区间(数组)C++

如果start和结束值不相等,说明当前区间是一个范围区间,需要添加区间起始值和结束值之间的箭头"->"。接着,while循环判断当前数字与前一个数字是否连续,即nums[i]是否等于nums[i-1]+1。如果start和结束值相等,说明当前区间只有一个数字,只需添加该数字到结果集。当不连续时,说明当前区间结束,记录区间的结束位置,即变量high赋值为i-1。在循环中,先记录当前区间的起始位置,即变量low赋值为i。如果区间不仅包含一个数字,需要添加"->"和结束数字。循环结束后,返回结果集result。

2024-07-26 15:55:38 371

原创 力扣222.完全二叉树的节点个数(递归)

的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。,求出该树的节点个数。

2024-07-26 15:04:15 246

原创 力扣101. 对称二叉树

如果节点p和节点q的值相同,我们还需要递归检查左子树的右子树和右子树的左子树是否对称,以及右子树的左子树和左子树的右子树是否对称。函数时,我们分别比较节点p和节点q的值是否相同。函数中,我们使用队列来存储待比较的节点。,传入根节点root作为参数,从根节点开始检查整个二叉树是否对称。如果队列为空,说明所有节点都被正确匹配,二叉树对称,返回true。,该函数接受两个参数,分别是节点p和节点q。最终,主函数返回的结果就是二叉树是否对称的结果。作为参数,从根节点开始检查整个二叉树是否对称。中,我们调用辅助函数。

2024-07-26 14:51:29 400

原创 力扣226.翻转二叉树()

最后,交换当前节点的左右子节点,将翻转后的左子树赋给当前节点的右子节点,将翻转后的右子树赋给当前节点的左子节点。的函数,用于翻转二叉树。该函数接受一个指向根节点的指针,并返回翻转后的二叉树的根节点。首先,代码中给出了二叉树节点的定义,每个节点包含一个值和指向左右子节点的指针。在函数内部,首先进行了边界条件的判断,如果当前节点为空,直接返回空指针。函数递归地翻转左子树和右子树,并将翻转后的子树分别存储在。然后,使用递归的方式翻转左子树和右子树。,翻转这棵二叉树,并返回其根节点。最后,返回翻转后的根节点。

2024-07-26 14:18:33 279

原创 力扣100.相同的树(树、深度优先搜索、广度优先搜索、二叉树)C++

接下来,判断两棵树的根节点的值是否相同,如果不相同,则它们不相同。如果根节点的值相同,那么就要分别判断它们的左子树和右子树是否相同。最后,如果队列queue1和queue2都为空,则说明两棵树是相同的。如果有一棵树为空而另一棵树不为空,或者有节点的值不同,那么两棵树就是不相同的。然后开始循环,当队列queue1和queue2都不为空时,取出队列的头节点,并比较它们的值是否相同。首先,判断两棵树是否都为空,如果是,则它们是相同的。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

2024-07-26 13:33:42 275

原创 力扣104. 二叉树的最大深度

在这个解决方案中,我们使用了广度优先搜索(BFS)的方法来计算二叉树的最大深度。我们维护一个队列,初始时只包含根节点。在每一轮中,我们将队列中的所有节点都取出,并将它们的子节点(如果有的话)加入队列。函数用于计算二叉树的最大深度。它使用递归的方法来计算,递归的基准情况是当根节点为空时,此时深度为0。如果根节点不为空,函数会递归地计算左子树和右子树的最大深度,并将它们中的最大值加1(根节点的深度)返回。当队列为空时,表示所有节点都已经被处理,此时。是指从根节点到最远叶子节点的最长路径上的节点数。

2024-07-26 11:04:12 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除