Reverse a singly linked list.
class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
prev = None
while head:
cur = head
head = head.next
cur.next = prev
prev = cur
return prev
1 cur = head 表示cur指针指向了head
2 因为需要倒置链表,所以最后是指向None的,所以设置一个prev node存储cur.next,就是一个临时的node,初始化为None
3 cur指针用来保存当前head的位置
4 同时head指针指向下一个node,为下一个循环做准备
5 一共三个指针,一个prev指针,用来存储当前指针的next值,一个cur指针指向当前head,一个head指针,指向下一次循环的head
6 首先处理head,用cur指针指向head
7 然后处理head指针,指向head.next
8 然后建立linked list,cur.next指向prev
9 最后更新prev,prev=cur,代表当前的head在下一个循环中是被指向的node