from contextlib import nullcontext
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head ListNode类
# @return ListNode类
#
class Solution:
def ReverseList(self , head: ListNode) -> ListNode:
# write code here
pre_node = None
next_node = None
#头插法,不断在列表头部插入新节点
while head:
next_node = head.next #保留当前节点后的节点
head.next = pre_node
#当前节点的下一个节点,指向新链表的头结点(准备在新链表头部插入节点)
pre_node = head #新链表的头结点改变为当前节点(在新链表头部插入节点)
head = next_node #恢复原链表的遍历
return pre_node