OJ上一元多项式求导提交后一直显示runtime error,请问该怎么解决
#include <bits/stdc++.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef struct Elemtype
{
int coe;
int ind;
}Elemtype;
typedef struct LNode
{
Elemtype data;
struct LNode*next;
}LNode,*LinkList;
void InitList(LinkList &L)
{
L=(LNode*)malloc(sizeof(LNode));
if(!L)
{
printf("error");
exit(1);
}
L->next=NULL;
}
void ListPut(LinkList &L)
{
LinkList P=L;
char a;
do
{
LinkList p=(LNode*)malloc(sizeof(LNode));
if(!p) break;
scanf("%d %d",&p->data.coe,&p->data.ind);
P->next=p;
p->next=NULL;
P=p;
}while( (a=getchar())!='\n');
}
void ListPrintf(LinkList &L)
{
LinkList Pr=L;
LinkList P=L;
do
{
Pr=Pr->next;
if(Pr->data.coe!=0)
{
if(Pr->data.ind!=0)
{
printf("%d %d",(Pr->data.coe)*(Pr->data.ind),(Pr->data.ind-1));
if(Pr->next!=NULL)
{
printf(" ");
}
}else
{
if(P->next->next==NULL)
{
printf("0 0");
if(Pr->next!=NULL)
{
printf(" ");
}
}
}
}else
{
printf("0 0");
if(Pr->next!=NULL)
{
printf(" ");
}
}
}while(Pr->next!=NULL);
}
void DestroyList(LinkList &L)
{
LinkList p=L,q=L->next;
for(;q;q=q->next)
{
free(p);
p=q;
}
}
int main()
{
LinkList L;
InitList(L);
ListPut(L);
ListPrintf(L);
DestroyList(L);
return 0;