可以使用迭代的方法来逆转链表。

首先,创建一个指向链表头部的指针和两个辅助指针 prevnext

然后,遍历链表,将当前节点的 next 指针指向前一个节点,然后将 prev 指针指向当前节点,next 指针指向下一个节点。

最后,更新链表头部指针,返回逆转后的链表。

以下是示例代码:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def reverseLinkedList(head):
    prev = None
    current = head

    while current:
        next_node = current.next
        current.next = prev
        prev = current
        current = next_node

    return prev

# 创建链表
nums = [1, 2, 3, 4, 51, 2, 3, 4, 5]
dummy = ListNode()
current = dummy
for num in nums:
    current.next = ListNode(num)
    current = current.next

head = dummy.next

# 逆转链表
reversed_head = reverseLinkedList(head)

# 打印逆转后的链表
result = []
current = reversed_head
while current:
    result.append(current.val)
    current = current.next

print(result)

输出结果为:[5, 4, 3, 2, 1, 5, 4, 3, 2, 1]

Python 链表逆转算法:迭代法实现

原文地址: https://www.cveoy.top/t/topic/qhWy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录