温馨提示×

python链表反转的方法是什么

小亿
99
2023-08-18 09:15:00
栏目: 编程语言

链表反转的方法有多种,以下是其中两种常见的方法:

  1. 迭代法:
  • 首先定义三个指针:prev、cur和next,初始时prev为None,cur为链表的头结点,next为cur的下一个节点。

  • 在每一次迭代中,将cur的next指针指向prev,然后依次将prev、cur和next向后移动一位。

  • 当cur为空时,说明已经遍历完整个链表,此时prev指向反转后的链表的头结点。

  • 返回prev。

以下是迭代法的Python实现:

def reverseList(head):
prev = None
cur = head
while cur:
next = cur.next
cur.next = prev
prev = cur
cur = next
return prev
  1. 递归法:
  • 首先判断链表是否为空或只有一个节点,若是,则直接返回该链表。

  • 否则,用递归的方式反转除第一个节点以外的子链表,并将原链表的头结点连接到反转后的子链表的尾部。

  • 返回反转后的链表的头结点。

以下是递归法的Python实现:

def reverseList(head):
if not head or not head.next:
return head
reversed_head = reverseList(head.next)
head.next.next = head
head.next = None
return reversed_head

以上两种方法均能实现链表反转,选择其中一种方法来使用即可。

0