题目

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
image.png

思路

初始链表状态
需要定义一个变量last指向pHead的上一个节点
image.png
两次迭代之后
x1被脱离出来加入反转的新链,并插入x0之前,pHead再后移
image.png
image.png

代码

  1. # Definition for singly-linked list.
  2. # class ListNode:
  3. # def __init__(self, x):
  4. # self.val = x
  5. # self.next = None
  6. class Solution:
  7. def reverseList(self, head: ListNode) -> ListNode:
  8. ans = None
  9. while head:
  10. tmp = head.next
  11. head.next = ans
  12. ans = head
  13. head = tmp
  14. return ans