PTA数据结构与算法题目集(中文)-单链表逆转

img
在dev上好好的,可以正确输出。提交就出这个问题,这个习题集只能选C语言。不知道怎么弄!

上面说你的都是冲定义呀,你不发代码那就只能按上面的说呢。

img
不好意思,代码在这。
#include <stdio.h>
#include <stdlib.h>

typedef int ElementType;
typedef struct Node PtrToNode;
struct Node {
ElementType Data;
PtrToNode Next;
};
typedef PtrToNode List;
List Read(); /
细节在此不表 /
void Print( List L ); /
细节在此不表 */

List Reverse( List L );

List Read(){
int a;
PtrToNode p,pa;
List L=NULL;
pa=L;
scanf("%d",&a);
for(int i=0;i<a;i++){
p=(PtrToNode)malloc(sizeof(struct Node));
scanf("%d",&p->Data);
p->Next=NULL;
if(i==0)
{
L=p;
pa=p;
}else{
pa->Next=p;
pa=p;
}

}
return L;

}
void Print( List L ){
PtrToNode q=L;
while(q){
printf("%d ",q->Data);
q=q->Next;
}
printf("\n");
}

List Reverse(List L){
PtrToNode a,b,c;
List L2;
a=L;
b=a->Next;
c=b->Next;
if(L==NULL || L->Next==NULL)
return L;

a->Next= NULL;
while(b){
        b->Next=a;
        a=b;
        b=c;
        if(c)
          c=c->Next; 
}
L2=a;

return L2;

}

int main()
{
List L1, L2;
L1 = Read();
L2 = Reverse(L1);
Print(L1);
Print(L2);
return 0;
}

/* 你的代码将被嵌在这里 */



不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^