您的位置:首页 > 其它

链表逆序

2016-04-09 17:02 197 查看
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

struct node
{
int date;
node *next;
};

void shou(node *head)
{
node *l;
l=head->next;
while(l!=NULL)
{
cout<<l->date<<" ";
l=l->next;
}
cout<<endl;
}
node *ni(node *head)
{
node *pre,*temp,*l,*now;
l=head->next;
pre=(node*)malloc(sizeof(node));
pre->next=NULL;
int i=0;
while(l!=NULL)
{
now=l->next;
temp=l;
temp->next=pre;
pre=temp;
if(i==0)
temp->next=NULL;
l=now;
i++;
}
head->next=pre;
return head;
}
int main()
{
int n;
node *head,*l,*p;
head=(node*)malloc(sizeof(node));
while(~scanf("%d",&n))
{
for(int i=0; i<n; i++)
{
p=(node*)malloc(sizeof(node));
cin>>p->date;
p->next=NULL;
if(i==0)
{
head->next=l=p;
}
else
{
l->next=p;
l=p;
}
}
head=ni(head);
shou(head);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: