求大佬
这么写oj老是说结果错误 不知道错误在哪
#include<stdio.h>
#include<stdlib.h>
typedef struct list{
int data;
struct list *next;
}List;
List* Creat(int n){//擦汗uangjian lianbiao
ListHead = NULL ,p,q;
for(int i=0;i<n;i++){
p=(List)malloc(sizeof(List));
scanf("%d",&(p->data));
if(Head==NULL){Head=p;}
else{
q->next=p;
}
q=p;
}
return Head;
}
void Show(ListHead){
while(Head!=NULL){
printf("%d ",Head->data);
Head=Head->next;
}
}
List Turn(ListHead){
Listp=NULL,q;
while(Head!=NULL){
q=p;
p=Head;
Head=Head->next;//当Head等于NULL时,相当于将最后一个元素的地址next取了出来放进了Head,
//而此时最后一个元素在存储空间中是孤立的,只要将p的值赋给Head,最后一个元素就指向了上一个元素
p->next=q;
}
Head=p;
return Head;
}
int main(){
int i;
int N;
// int P;
int n;
scanf("%d",&N);
Listl[100000];
// P=N;
for(i=0;i<N;i++){
scanf("%d",&n);
Listhead=Creat(n);
Listtemp=Turn(head);
l[i]=temp;
//Show(temp);
// --N;
}
// printf("\n");
for(int i=0;i<N;i++){
Show(l[i]);
printf("\n");
}
return 0;
}