#include<stdio.h>
#include<stdlib.h>
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*LinkList;
LinkList reverseList(LinkList L){
if(L==NULL||L->next==NULL)return L;
LinkList p=NULL,q=L,temp=NULL;
while(q!=NULL){
temp=q->next;
q->next=p;
p=q;
q=temp;
}
return p;
}
void create(LinkList *L,int n)
{
int i;
LinkList p,q;
*L=(Lnode *)malloc(sizeof(Lnode));
(*L)->next=NULL;
q=*L;
printf("请连续输入结点的元素值:");
for(i=1;i<=n;++i)
{
p=(Lnode *)malloc(sizeof(Lnode));
scanf("%d",&p->data);
p->next=NULL;
q->next=p;
q=q->next;
}
}
void print( LinkList L)
{ LinkList p=L->next;
while(p->next)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void main(){
LinkList L;
int n;
scanf("%d",&n);
create(&L,n);
print(reverseList(L));
}
C语言实现链表的反转
最新推荐文章于 2023-12-03 18:23:51 发布