class ListNode:
    def __init__(self, val: int = None, next = None):
        self.val = val
        self.next = next


def reverse_linked_list(node: ListNode) -> ListNode:
    if node is None:
        return None
    elif node.next is None:
        return node
    else:
        next_node: ListNode = node.next
        node.next = None
        rest: ListNode = reverse_linked_list(next_node)
        next_node.next = node
        return rest