Python 中的链表展平2024年8月29日 | 阅读 8 分钟 如果我们给定一个链表,其中每个节点本身就是一个单独的链表,并且有两个相同类型的指针。
主链表和次链表都应该是排序的,并且最终形成的扁平化链表也应该是排序的。 示例输入 输出 6 -> 7 -> 9 -> 15 -> 21 -> 25 -> 26 -> 29 -> 30 -> 30 -> 31 -> 51 -> 56 输入 输出 4 -> 5 -> 8 -> 9 -> 10 -> 15 -> 15 -> 17 -> 21 -> 30 策略是定义一个函数来合并链表。我们将使用 merge() 函数顺序合并链表,并通过递归地将当前链表合并到最近的扁平化链表中。我们将使用 sec 指针连接扁平化链表的节点。 该问题的算法如下:
上述技术实现如下: 代码 输出 The flattened linked list is: 6 7 9 15 21 25 26 29 30 30 31 51 56 时间复杂度:该程序的时间复杂度为 O(n * n * m)。其中 N 是主链表中的总节点数,M 是单个子链表中的节点数。 辅助空间:O(n * m)。 因为我们同时合并两个链表,
由于我们使用的是递归方法,此方法的空间复杂度为 O(n * m)。使用的递归函数将创建一个递归栈。该栈的大小将等同于给定嵌套链表中存在的总节点数,即 n * m。 使用优先队列扁平化链表该方法是创建一个最小堆,并将每个链表的头节点放入该数据结构中。然后,使用 Extract-min 方法,从优先队列中获取最小整数,并使用该最小元素在链表中继续操作。 为了实现这一策略,我们将使用以下算法:
我们将使用 Python 实现此算法,如下所示。 代码 输出 30 9 7 6 51 26 21 56 31 30 29 时间复杂度:该方法的时间复杂度为 O(N * M * log(N))。其中 N 是主链表或初始链表中的节点数,M 是单个子链表中的节点数。 辅助空间:此方法的空间复杂度为 O(N)。其中 N 是主链表中存在的节点数。 |
你想盖一所房子。开始建造过程的第一件事是什么?你为你的房子制定一个计划。你按照计划建造房子。计划就像房子的蓝图...
阅读 6 分钟
什么是二叉搜索树?二叉搜索树是一种二叉数据结构,包含具有以下几个属性的各种节点:左子树节点小于根节点。右子树节点大于根节点。每个节点的子节点...
阅读 6 分钟
有很多原因说明为什么学习 Python 对年轻人很重要,但对于孩子来说,Python 是一种非常棒的编程语言,可以开始学习编码。Python 是一种功能强大、易于阅读、高级的编程语言。这意味着就像我们阅读英语一样...
阅读 6 分钟
全世界数百万用户使用消息应用程序 Telegram。此外,Telegram 还提供 API,允许我们构建机器人并自动化消息传输。因此,在本文中,我们将使用 Python 将消息发送给 Telegram 用户。您可能知道...
阅读 3 分钟
Matplotlib 是一个 Python 库,可让您创建确定性、动画和引人入胜的可视化。它用于在 Python 中制作图表,例如条形图、散点图、饼图、直方图、折线图、3D 图等。Matplotlib 库包含有关散点图的信息……
阅读 6 分钟
在接下来的教程中,我们将从头开始使用 Python 编程语言创建一个名为井字棋的游戏。为了更好地理解,我们将整个程序分为几个步骤。但在我们进入程序之前,让我们先了解一下这个游戏。什么是...
阅读20分钟
形态学操作可用于提取图像组件,这些组件有助于描述和表示区域的形状。形态学操作是依赖于图像形状的基本任务。它通常在二值图像上进行。它需要两个...
阅读 3 分钟
Tkinter 是一个 Python 模块,旨在为从应用程序到网站的任何项目开发 GUI。GUI 代表图形用户界面。Tkinter 是最广泛使用的模块之一,可以更快地创建 GUI。该模块的功能使得工作...
阅读 4 分钟
介绍在 Python 中,del 关键字通常用于删除对象。由于 Python 中的所有内容都表示某种对象,因此 del 关键字也可以用于删除列表、变量、列表的一部分等。del 语句不返回任何类型...
阅读 2 分钟
到目前为止,我们已经讨论了Python中各种转换。在本教程中,我们将学习另一种转换,即将字符串转换为Python中的列表。我们将使用以下方法来实现我们的目标:使用split(),使用带分隔符的split(),使用strip(),使用map()。让我们讨论每种方法……
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India