leetcode-09 206.反转链表
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
思路:
要将链表 1 -> 2 -> 3 -> 4 -> Null 反转为 4 -> 3 -> 2 -> 1 -> Null ,需要一个 cur 指针表示当前遍历到的节点;一个 pre 指针表示当前节点的前驱节点;在循环中还需要一个中间变量 temp 来保存当前节点的后驱节点。
代码:
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
pre = None
cur = head
while cur:
temp = cur.next
cur.next = pre
pre = cur
cur = temp
return pre