# 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
         # 初始化指针
        prev = None
        curr = head

        # 反转链表
        while curr:
            next_node = curr.next  # 临时存储下一个节点
            curr.next = prev       # 反转当前节点的指向
            prev = curr            # 移动 prev 指针
            curr = next_node       # 移动 curr 指针

        # 返回新链表的头节点
        return prev