# 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:
        if not head:
            return head
        
        # 记录当前节点的上一个节点。
        previous = None
        # 当前节点不为空。
        while(head):
            # 保留当前节点的下一个节点,避免操作当前节点时链表断开。
            next = head.next
            # 让当前节点的下一个变成它的上一个节点。
            head.next = previous
            # 当前节点将作为下一次循环的上一个节点
            previous = head
            # 让指针指向下一个节点。
            head = next

        return previous