链接: 原文链接.
# Definition for singly-linked list. class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: # 这个题不会,参考大佬写法 # 双指针,修改每个节点的指针指向。 def reverseList(self, head: ListNode) -> ListNode: # cur, pre = head, None # 当cur为空时,则表明已经遍历到了末尾 # 而他的前一个节点pre值为5,指向的是4,结果返回pre即可。 while cur: # 大概思路就是 # 先用tmp来暂存cur的下一个节点 tmp = cur.next # 之后就是修改cur的next指向,首次循环要指向为空 cur.next = pre # 下一步是把cur赋值给pre,pre要当作cur的前一个结点 pre = cur # 最后一步就是把tmp赋给cur,cur现在代表的是第二个节点 cur = tmp return pre
ps:看题的时候脑子有些不太清楚,画了一个图。第一次循环是红色的部分,第二次是紫色的部分。