Javatpoint标志
Javatpoint标志

在Python中反转链表

在本教程中,我们将用Python编写反向链表的程序。链表用于动态存储元素。链表是一种类似数组的线性数据结构,但它动态地存储元素。每个元素使用特定的地址与前一个节点连接,并将值与下一个元素的地址一起存储。整个元素称为Node。

在这里,我们将使用Python程序反转给定的链接。让我们来理解问题陈述。

问题陈述-

我们需要提供链表并返回其反向,如下所示。

让我们实现给定问题的解决方案。

方法- 1

首先,我们将创建链表,并使用迭代方法解决这个问题。

代码创建链表

输出:

1 -> 2 -> 3 -> 4 ->

在上面的代码中,我们已经初始化了链表并添加了一些元素。现在,我们将实现反向链表的迭代方法。

反向链表

我们想要实现反向()方法,该方法执行以下操作。

  • 所有的链接都指向相反的方向。
  • 头开始指向列表的最后一个元素。

我们将定义三个指针-

  • 以前的,它是一个初始指针,指向没有一个在开始时,此指针指向前一个元素,因此下一个链接可以反向使用它。
  • 当前,它最初指向头部,被这个变量指向的节点得到它的节点。Next设置为列表中的前一项。
  • 后,它指向第二个节点。我们把它移动到一个元素头直到它得到下一个= =。

让我们实现reverse_Llist()函数。

的例子,

输出:

反向链表为:4 -> 3 -> 2 -> 1 ->

解释,

在上面的代码中,我们已经初始化了链表实例并创建了链表。reverse_Llist()函数在被链接的对象上调用,以反转列表。

方法-2 -递归法

输出:

反向链表为:4 -> 3 -> 2 -> 1 ->

时间复杂度:O(N)

辅助空间:O(1)

结论

在上面的教程中,我们已经实现了反转链表问题的解决方案。它是链表的一个基本概念,可以在面试问题中提出。我们用迭代法和递归法解决了这个问题,两种方法的时间复杂度是相同的。







Youtube 观看视频请加入我们的Youtube频道:现在加入

反馈


帮助他人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


B.Tech / MCA






Baidu
map