该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
传送门http://pta.patest.cn/pta/test/15/exam/3
题目是实现一个单链表的反转,但是提交上去老是编译错误。
代码贴上:
#include
#include
typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
ElementType Data;
PtrToNode Next;
};
typedef PtrToNode List;
List Read()
{
List p1,p2,head = NULL;
int i,n,num;
scanf("%d",&n);
for( i = 0 ; i < n ;i++)
{
scanf("%d",&num);
p1 = (Node *)malloc(sizeof(Node));
p1->Data = num;
if(head == NULL)
{
head = p1;
}
else
{
p2->Next = p1;
}
p2 = p1;
}
p1->Next = NULL;
return head;
}
void Print( List L )
{
while(L!=NULL)
{
printf("%d ",L->Data);
L = L->Next;
}
printf("\n");
}
List Reverse( List L )
{
List p1=NULL,p2;
while(L!=NULL)
{
p2=(node *) malloc(sizeof(node));
if(p1==NULL) p2->Next=NULL;
else p2->Next=p1;
p1=p2;
p2->Data=L->Data;
L=L->Next;
}
return p1;
}
int main()
{
struct Node *L1, *L2;
L1 = Read();
L2 = Reverse(L1);
Print(L1);
Print(L2);
return 0;
}