打卡题目:leetcode第206题,反转链表
相似题目:92、234
【思路】
使用三个指针p、q、r,指向三个相邻的节点,其中p.next为q,q.next为r。
修改q的指针指向,并且移动p、q、r三个指针,即q.next = p,p = q,q = r,r = r.next。不断循环,并注意修改head.next及head,即可实现链表翻转。
【代码】
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution:def reverseList(self, head: ListNode) -> ListNode:pre = Nonecur = headwhile cur:temp = cur.nextcur.next = prepre = curcur = tempreturn pre
