📅  最后修改于: 2023-12-03 15:20:20.734000             🧑  作者: Mango
Stackoverflow 反向链表是指将一个链表进行反转,即将链表的指针方向全部反向。在编程中,反向链表常用于解决与链表相关的问题。
以下是一种使用迭代方式实现反向链表的算法示例:
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
def reverse_linked_list(head):
prev = None
curr = head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
上述算法通过迭代的方式遍历链表,将每个节点的 next
指针指向其前一个节点,从而实现链表的反转。
# 创建一个链表: 1 -> 2 -> 3 -> 4 -> 5
head = Node(1)
head.next = Node(2)
head.next.next = Node(3)
head.next.next.next = Node(4)
head.next.next.next.next = Node(5)
# 反向链表
reversed_head = reverse_linked_list(head)
# 输出反向链表的内容: 5 -> 4 -> 3 -> 2 -> 1
curr = reversed_head
while curr:
print(curr.data)
curr = curr.next
输出结果如下:
5
4
3
2
1
Stackoverflow 反向链表是一个常用的编程技巧,可以在解决与链表相关的问题时发挥重要作用。上述示例提供了一种使用迭代方式实现的算法,你可以根据具体需求选择相应的实现方式。