Python 链表逆转算法:迭代法实现
可以使用迭代的方法来逆转链表。
首先,创建一个指向链表头部的指针和两个辅助指针 prev 和 next。
然后,遍历链表,将当前节点的 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]
原文地址: https://www.cveoy.top/t/topic/qhWy 著作权归作者所有。请勿转载和采集!