# include<bits/stdc++.h>
using namespace std;
struct Node {
int data;
struct Node *next;
}*head=NULL;
void display(struct Node *p)
{
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
}
void Reverse(struct Node *p, struct Node *q)
{
// cout<<p -> data<<":"<<q -> data;
if(q -> next)
{
Reverse(q,q->next);
}
else
head=q;
q->next=p;
p->next = NULL;
}
int main()
{
struct Node *t,*t1,*t2;
t=new struct Node;
t1=new struct Node;
t2=new struct Node;
t->data=1;
t->next=NULL;
head=t;
t1->data=2;
t1->next=NULL;
head->next=t1;
t2->data=3;
t2->next=NULL;
head->next->next=t2;
display(head);
//struct Node *q=NULL;
Reverse(head,head -> next);
display(head);
return 0;
}
IyBpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKc3RydWN0IE5vZGUgewoJaW50IGRhdGE7CglzdHJ1Y3QgTm9kZSAqbmV4dDsKCQp9KmhlYWQ9TlVMTDsKCnZvaWQgZGlzcGxheShzdHJ1Y3QgTm9kZSAqcCkKewoJd2hpbGUocCE9TlVMTCkKCXsKCQljb3V0PDxwLT5kYXRhPDwiICI7CgkJcD1wLT5uZXh0OwoJfQp9CgoKdm9pZCBSZXZlcnNlKHN0cnVjdCBOb2RlICpwLCBzdHJ1Y3QgTm9kZSAqcSkKewogLy8gY291dDw8cCAtPiBkYXRhPDwiOiI8PHEgLT4gZGF0YTsKICBpZihxIC0+IG5leHQpCiAgewogICAgUmV2ZXJzZShxLHEtPm5leHQpOwogIH0KICBlbHNlCgloZWFkPXE7CiAgIHEtPm5leHQ9cDsKICAgcC0+bmV4dCA9IE5VTEw7Cn0KCmludCBtYWluKCkKewoJc3RydWN0IE5vZGUgKnQsKnQxLCp0MjsKCXQ9bmV3IHN0cnVjdCAgTm9kZTsKCXQxPW5ldyBzdHJ1Y3QgIE5vZGU7Cgl0Mj1uZXcgc3RydWN0ICBOb2RlOwoJCgl0LT5kYXRhPTE7Cgl0LT5uZXh0PU5VTEw7CgkKCWhlYWQ9dDsKCQoJdDEtPmRhdGE9MjsKCXQxLT5uZXh0PU5VTEw7CgkKCWhlYWQtPm5leHQ9dDE7CgkKCXQyLT5kYXRhPTM7Cgl0Mi0+bmV4dD1OVUxMOwoJCgloZWFkLT5uZXh0LT5uZXh0PXQyOwoJCglkaXNwbGF5KGhlYWQpOwoJCgkvL3N0cnVjdCBOb2RlICpxPU5VTEw7CgkKCVJldmVyc2UoaGVhZCxoZWFkIC0+IG5leHQpOwoJCglkaXNwbGF5KGhlYWQpOwoJCQoJcmV0dXJuIDA7Cn0=