#include<bits/stdc++.h>
using namespace std;
#define ll long long int
class Node {
public:
int data;
Node * next;
Node(int new_data) {
data = new_data;
next = nullptr;
}
};
Node *reverseList(Node *head) {
Node *curr = head, *prev = nullptr, *next;
// Traverse all the nodes of Linked List
while (curr != nullptr) {
// Store next
next = curr->next;
// Reverse current node's next pointer
curr->next = prev;
// Move pointers one position ahead
prev = curr;
curr = next;
}
return prev;
}
void printList(Node *node) {
while (node != nullptr) {
cout << node->data;
if (node->next)
cout << " -> ";
node = node->next;
}
}
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);
head->next->next->next->next = new Node(5);
head = reverseList(head);
printList(head);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CgpjbGFzcyBOb2RlIHsKCXB1YmxpYzoKCQlpbnQgZGF0YTsKCQlOb2RlICogbmV4dDsKCQkKCQlOb2RlKGludCBuZXdfZGF0YSkgewoJCQlkYXRhID0gbmV3X2RhdGE7CgkJCW5leHQgPSBudWxscHRyOwoJCX0KfTsKCk5vZGUgKnJldmVyc2VMaXN0KE5vZGUgKmhlYWQpIHsKCiAgICBOb2RlICpjdXJyID0gaGVhZCwgKnByZXYgPSBudWxscHRyLCAqbmV4dDsKCiAgICAvLyBUcmF2ZXJzZSBhbGwgdGhlIG5vZGVzIG9mIExpbmtlZCBMaXN0CiAgICB3aGlsZSAoY3VyciAhPSBudWxscHRyKSB7CgogICAgICAgIC8vIFN0b3JlIG5leHQKICAgICAgICBuZXh0ID0gY3Vyci0+bmV4dDsKCiAgICAgICAgLy8gUmV2ZXJzZSBjdXJyZW50IG5vZGUncyBuZXh0IHBvaW50ZXIKICAgICAgICBjdXJyLT5uZXh0ID0gcHJldjsKCiAgICAgICAgLy8gTW92ZSBwb2ludGVycyBvbmUgcG9zaXRpb24gYWhlYWQKICAgICAgICBwcmV2ID0gY3VycjsKICAgICAgICBjdXJyID0gbmV4dDsKICAgIH0KCiAgICByZXR1cm4gcHJldjsKfQoKdm9pZCBwcmludExpc3QoTm9kZSAqbm9kZSkgewogICAgd2hpbGUgKG5vZGUgIT0gbnVsbHB0cikgewogICAgICAgIGNvdXQgPDwgbm9kZS0+ZGF0YTsKICAgICAgICBpZiAobm9kZS0+bmV4dCkKICAgICAgICAgICAgY291dCA8PCAiIC0+ICI7CiAgICAgICAgbm9kZSA9IG5vZGUtPm5leHQ7CiAgICB9Cn0KCmludCBtYWluKCkgewoKICAgIE5vZGUgKmhlYWQgPSBuZXcgTm9kZSgxKTsKICAgIGhlYWQtPm5leHQgPSBuZXcgTm9kZSgyKTsKICAgIGhlYWQtPm5leHQtPm5leHQgPSBuZXcgTm9kZSgzKTsKICAgIGhlYWQtPm5leHQtPm5leHQtPm5leHQgPSBuZXcgTm9kZSg0KTsKICAgIGhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQgPSBuZXcgTm9kZSg1KTsKCiAgICBoZWFkID0gcmV2ZXJzZUxpc3QoaGVhZCk7CgogICAgcHJpbnRMaXN0KGhlYWQpOwoKICAgIHJldHVybiAwOwp9