多项式加减程序,不知道为啥在codeblock上能正常运行,但在锐格系统上就出不来结果

#include
using namespace std;
  typedef struct Node{
  int m,z;
  Node* next;
}LNode,*LinkList;
int Initilist(LinkList& L);

int main(){
int i;
int n;
cin >> n;
LinkList L1 = new LNode;
  LinkList p = L1;
  for (int i = 0; i < n; i++) {
    LinkList temp = new LNode;
    scanf("%d,%d", &temp->m, &temp->z);
    temp->next = NULL;
    p->next = temp;
    p = p->next;
  }

  cin >> n;

  LinkList L2 = new LNode;
  p = L2;
  for (int i = 0; i < n; i++) {
    LinkList temp = new LNode;
    scanf("%d,%d", &temp->m, &temp->z);
    temp->next = NULL;
    p->next = temp;
    p = p->next;
  }

LinkList L3=new LNode;
Initilist(L3);
LinkList p3=L3;
LinkList p1=L1->next;
LinkList p2=L2->next;
LinkList temp3=new LNode;
while(p1!=NULL&&p2!=NULL){
if(p1->zz){
p3->next=p1;
p1=p1->next;
p3=p3->next;
}
else if(p1->z==p2->z){
int data=p1->m+p2->m;
if(data==0){
p1=p1->next;
p2=p2->next;
}else{
temp3->m=data;
temp3->z=p1->z;
p3->next=temp3;
p3=p3->next;
p1=p1->next;
p2=p2->next;
}
}
else{
p3->next=p2;
p2=p2->next;
p3=p3->next;
}
}
if(p1==NULL){
p3->next=p2;
}
if(p2==NULL){
p3->next=p1;
}
LinkList temp4=L3->next;
while(temp4!=NULL){
 printf("%d*x^%d ",temp4->m,temp4->z);
temp4=temp4->next;
}
printf("\n");
Initilist(L1); 
Initilist(L2);
Initilist(L3);
return 0;
}

int Initilist(LinkList& L){
    L=new LNode;
    L->next=NULL;
   return 1;
}

是没有及时释放内存的问题吗?我为了节省时间没有释放用过的内存,但这应该不会影响输出啊