要反转单链表,只需要使用两个指针。一个指针用于遍历链表,另一个指针用于记录当前节点的前一个节点。在遍历过程中,将当前节点的下一个节点指向前一个节点,然后将前一个节点和当前节点向前移动一个节点。当遍历到链表末尾时,链表就被反转了。
以下是使用Python实现的代码示例:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverse_list(head: ListNode) -> ListNode:
prev = None
curr = head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
在这个示例中,ListNode
类表示链表中的一个节点,包含一个值和一个指向下一个节点的指针。reverse_list
函数接受一个链表的头节点,并返回反转后的链表的头节点。
在函数中,prev
指针指向当前节点的前一个节点,curr
指针用于遍历链表。在遍历过程中,将当前节点的下一个节点指向前一个节点,然后将prev
和curr
向前移动一个节点。当遍历到链表末尾时,链表就被反转了。
这种方法只需要使用两个指针,因此具有较高的效率。
领取专属 10元无门槛券
手把手带您无忧上云