Reverse a Linked List

Define the structure of a node:

struct Node {
    int data;
    Node* next;
};

Reverse the linked list:

Node reverseList(Node head) {
    Node prev = nullptr, current = head, *next = nullptr;
    while (current != nullptr) {
        next = current->next;
        current->next = prev;
        prev = current;
        current = next;
    }
    return prev;
}