#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
};
typedef struct Node Node;
Node *reverseList(Node *head)
{
if(head==NULL||head->next==NULL)
return head;
Node *p1=head;
Node *p2=p1->next;
Node *p3=p2->next;
p1->next=NULL;
while(p3!=NULL)
{
p2->next=p1;
p1=p2;
p2=p3;
p3=p3->next;
}
p2->next=p1;
head=p2;
return head;
}
int main()
{
Node *node=new Node();
node->data=0;
Node *head=node;
for(int i=1;i<10;i++){
Node *temp=new Node();
temp->data=i;
node->next=temp;
node=node->next;
}
Node *newHead=reverseList(head);
while(newHead!=NULL){
cout<<newHead->data<<" ";
newHead=newHead->next;
}
cout<<endl;
}