链表反转是计算机科学中一个常见的问题,涉及到对链表数据结构的操作。链表是一种线性数据结构,其中每个元素(节点)包含数据部分和指向下一个节点的指针。链表反转的目标是将链表中的元素顺序颠倒过来。
class ListNode:
def __init__(self, value=0, next=None):
self.value = value
self.next = next
def reverse_list(head):
prev = None
current = head
while current:
next_node = current.next # 暂存下一个节点
current.next = prev # 反转当前节点的指针
prev = current # 移动prev和current指针
current = next_node
return prev # prev现在是新的头节点
# 创建链表 1 -> 2 -> 3 -> None
head = ListNode(1, ListNode(2, ListNode(3)))
# 反转链表
new_head = reverse_list(head)
# 打印反转后的链表
current = new_head
while current:
print(current.value, end=" -> ")
current = current.next
# 输出: 3 -> 2 -> 1 -> None
通过上述方法,可以有效地解决链表反转过程中可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云