思路:
创建两个指针,一个指针指pre指向NULL,一个指针cur指向头节点head
创建临时指针tmp,保存cur指向的下一个节点路径。方便在做反转时能找到下一个节点。
重点在于如何找到反转之后的下一个节点的所在的位置。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
pre = None
cur = head
while cur:
#将cur指向的下个节点保存
tmp = cur.next
#将cur指向的节点反转
cur.next = pre
#移动pre到下一个节点
pre = cur
#移动cur到下一个节点
cur = tmp
return pre