#include<stdio.h>
#include<stdlib.h>
#define NULL 0
typedef struct LNode
{
struct LNode *next;
int data;
}LNode,*lnode;
void createList(lnode &l,int n)
{
lnode p,q;
l=(lnode)malloc(sizeof(LNode));
p=l;
for(int i=0;i<n;i++)
{
q=(lnode)malloc(sizeof(LNode));
scanf("%d",&q->data);
p->next=q;
p=q;
}
p->next=NULL;
}
void inverse(lnode &l)
{
lnode p,r;
p=l->next;
l->next=NULL;
while(p)
{
r=p;
p=p->next;
r->next=l->next;
l->next=r;
}
}
void printList(lnode l)
{
lnode p;
p=l->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
void main()
{
lnode A,B;
int n;
scanf("%d",&n);
printf("input list: \n");
createList(A,n);
inverse(A);
printf("inversed output : \n");
printList(A);
printf("\n");
}
链表就地逆置
最新推荐文章于 2020-06-23 20:29:42 发布