today is your lucky day! :-), though it is in c++!
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Node
{
int Data;
Node* Next;
Node()
{
Data =-1;
Next= NULL;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Node* First= NULL, *Next=NULL,*Temp;
for(int i =10;i<20;i++)
{
Temp = new Node();
Temp->Data = i;
Next = First;
if(Next==NULL)
{
First = Temp;
}
else
{
while((Next->Next!=NULL))
{
Next=Next->Next;
}
Next->Next = Temp;
}
}
cout<<"Display Data"<<endl;
Next = First;
while((Next!=NULL))
{
cout<<Next->Data<<endl;
Next=Next->Next;
}
Node* Last=NULL,*ltTemp;
while(First->Next!=NULL)
{
ltTemp = First;
Temp = First->Next;
while((Temp->Next!=NULL))
{
if(Temp)
Temp=Temp->Next;
if(ltTemp)
ltTemp= ltTemp->Next;
}
ltTemp->Next= NULL;
if(Last== NULL)
{
Last=Temp;
}
else
{
Next = Last ;
while((Next->Next!=NULL))
{
Next=Next->Next;
}
Next->Next = Temp;
}
}
if(Temp)
Temp->Next= First;
cout<<"Display Data reverse order"<<endl;
Next = Last;
while((Next!=NULL))
{
cout<<Next->Data<<endl;
Next=Next->Next;
}
Next = First;
if(Next)
while((Next!=NULL))
{
Temp = Next;
Next=Next->Next;
delete Temp;
}
if(Next)
delete Next;
}