链表翻转

52 阅读1分钟

链表的翻转可以通过多种方法实现,其中最常用的是使用三个指针进行遍历和翻转。下面是一个使用 Python 实现的示例: python class ListNode: def init(self, x): self.val = x self.next = None def reverseList(head): prev = None curr = head while curr is not None: next_temp = curr.next
# 暂存 curr 的下一个节点 curr.next = prev
# 将 curr 的 next 指向前一个节点 prev = curr
# prev 向后移动一位 curr = next_temp # curr 向后移动一位 return prev 这个函数接受一个链表的头节点,然后返回翻转后的链表的头节点。在这个函数中,我们使用三个指针:prev、curr 和 next_temp。在遍历链表的过程中,我们不断地将 curr.next 指向 prev,然后将 prev 和 curr 向后移动一位,直到 curr 为空,此时 prev 就是翻转后链表的头节点。 注意,这个函数会改变输入的链表。如果你不希望改变原链表,可以先复制一份链表再进行翻转。