python链表反转的方法是什么

24次阅读
没有评论

共计 601 个字符,预计需要花费 2 分钟才能阅读完成。

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

  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

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

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-22发表,共计601字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)