print linked list reverse order in c++

#include <iostream>
using namespace std;

struct Node {
    int data;
    Node* next;
    Node(int val) : data(val), next(nullptr) {}
};

void printReverse(Node* head) {
    if (head == nullptr) {
        return;
    }
    printReverse(head->next);
    cout << head->data << " ";
}

int main() {
    Node* head = new Node(1);
    head->next = new Node(2);
    head->next->next = new Node(3);
    head->next->next->next = new Node(4);

    printReverse(head);

    return 0;
}