‣
Односвязный список
struct Node {
int val;
Node* next;
Node(int _val) : val(_val), next(nullptr) {};
};
void printNode(Node* t){
while(t != nullptr){
cout << t->val << ' ';
t = t->next;
}
cout << "\n";
}
Node* reverse(Node* now, Node* pr){
if(now == nullptr)
return pr;
Node* tNext = now->next;
now->next = pr;
return reverse(tNext, now);
}
int main() {
int n = 5;
// cin >> n;
Node* head = new Node(0);
Node* pred = head;
for(int i = 1; i<n; i++){
Node* t = new Node(i);
pred->next = t;
pred = t;
}
printNode(head);
head = reverse(head, nullptr);
printNode(head);
return 0;
}