首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何仅使用两个指针反转单链表?

要反转单链表,只需要使用两个指针。一个指针用于遍历链表,另一个指针用于记录当前节点的前一个节点。在遍历过程中,将当前节点的下一个节点指向前一个节点,然后将前一个节点和当前节点向前移动一个节点。当遍历到链表末尾时,链表就被反转了。

以下是使用Python实现的代码示例:

代码语言:python
代码运行次数:0
复制
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指针用于遍历链表。在遍历过程中,将当前节点的下一个节点指向前一个节点,然后将prevcurr向前移动一个节点。当遍历到链表末尾时,链表就被反转了。

这种方法只需要使用两个指针,因此具有较高的效率。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券