题目描述
反转一个单链表。
- 示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
解题思路
- 定义一个游标记录当前值。Pre = None
- 链表的第一个节点的next指针指向Pre
- Pre 变为当前节点
- 向后遍历节点
代码
class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
cur ,prev = head,None
while cur:
tmp = cur.next
cur.next = prev
prev = cur
cur = tmp
return prev
注意
class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
cur ,prev = head,None
while cur:
cur.next = prev
prev = cur
cur = cur.next
return prev
不能这样写,while
循环里面的cur.next
一开始就已经变成了prev,因此需要先保存tmp = cur.next