c语言链表实现一元多项式加减为什么相加之后的输出结果会加上一串数字

HLink add(HLink p, HLink q){
HLink sum = (HLink)malloc(sizeof(node));//和的头节点
sum->next = NULL;
HLink n = sum;
while(p && q ){
if(p->exp < q->exp){
n->next = p;
n = p;
p = p->next;
}
else if(p->exp > q->exp){
n->next = q;
n = q;
q = q->next;
}
else if(p->exp == q->exp){
p->coe = p->coe + q->coe;
n->next = p;
n = p;
p = p->next;
q = q->next;
}

}     
//若两多项式长度不同,需要插入其中长的多项式的剩余项
if(p != NULL){
    n->next = p;
    
} 
 if(q != NULL){
    n->next = q;
    

}

return sum;

}

img

可以看一下你的输出是怎么写的吗