class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @return ListNode类
#

class Solution:

    # 递归解法
    def reverse(self, cur, prev):
        if cur == None:
            return prev
        temp = cur.next
        cur.next = prev
        return self.reverse(temp, cur)

    def ReverseList(self , head: ListNode) -> ListNode:
        # prev = None
        # cur = head
        # if cur == None:
        #     return 
        # while cur:  # 在每一步循环中就完成反转操作
        #     temp = cur.next
        #     cur.next = prev
        #     prev = cur 
        #     cur = temp
        # return prev
        return self.reverse(head, None)