206. Reverse Linked List
经典链表操作,也算利用了双指针的思想:
初始化双指针,prev
放None
(完成reverse后的表尾),cur
放head
(现表头),然后用cur遍历链表:
用一个临时对象
temp
暂存cur
的下一个nodecur.next
把
cur
的指针指向prev
(逆转cur
和prev
的指针方向)将
prev
和cur
指针分别移动到cur
和temp
(即在原链表顺序上往后移动一格)
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
prev = None
cur = head
while cur:
follow = cur.next
cur.next = prev
prev = cur
cur = follow
return prev
Last updated
Was this helpful?