单链表反转(python)
第一次循环:
第一步:next = head.next
将 head.next 赋值给 next 变量,即next 指向了节点2,先将节点2 保存起来。

第二步:head.next = pre (初始pre==None)
将 pre 变量赋值给 head.next,即 此时节点1 指向了 None

第三步:pre = head
将 head 赋值给了 pre,即 pre 指向节点1,将节点1 设为“上一个节点”

第四步:head = next
将 next 赋值给 head,即 head 指向了节点2,此时节点2 设为“头节点”

def ReverseList(self , head: ListNode) -> ListNode:
pre = None
while head != None:
next = head.next #1
head.next = pre #2
pre = head #3
head = next#4
return pre

浙公网安备 33010602011771号