描述:
输入一个链表,反转链表后,输出新链表。
输入样例
1 2 3
输出样例
3 2 1
Code:(编译器不是在警告我,它在警告自己)
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int data;
struct node *next;
}node;
int main(void)
{
int data;
node *head,*tail,*newhead,*current,*p;
newhead=head=tail=NULL;
while(scanf("%d",&data)!=EOF)
{
p=(node *) malloc(sizeof (node));
p->data=data;
if(!head)
{
head=p;
}
else
{
tail->next=p;
}
p->next=NULL;
tail=p;
}
while(tail!=head)
{
if(!newhead)
{
newhead=tail;
}
else
{
current=head;
while(current->next!=tail)
{
current=current->next;
}
tail->next=current;
tail=current;
}
tail->next=NULL;
}
p=newhead;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
return 0;
}