求康康哪里有问题,哭了

问题遇到的现象和发生背景

现在用带头节点的单链表来存储多项式,链表中的一个节点表示多项式的一项,
节点中coef表示多项式的系数,exp表示多项式的次数,例如5x8用一个节点表
示时,该节点的coef成员值为5,exp值为8。
请设计void polyAdd(PolyList LA, PolyList LB,PolyList LC)函数。
参数:LA,LB指向的链表是带头节点的单链表,链表中的每个数据
节点表示多项式的一项,数据节点已经按指数从大到小排序。
LC指向一个空的带头节点的链表,表示空的多项式。
该函数用来对多项式LA和LB相加,结果保存在多项式LC指向的单链表中。
请注意,本题有预置代码,只需提交所要求的函数定义代码即可。

问题相关代码,请勿粘贴截图

void polyAdd(PolyList LA, PolyList LB,PolyList LC)
{
int sum;
LA=LA->next;
LB=LB->next;
while(LA!=NULL&&LB!=NULL){
if(LA->exp>LB->exp){
LC->next=LA;
LC=LA;
LA=LA->next;
}
if(LA->expexp){
LC->next=LB;
LC=LB;
LB=LB->next;
}
if(LA->exp==LB->exp){
sum=LA->coef+LB->coef;
if(sum!=0){
LC->next->coef=sum;
LC->next->exp=LA->exp;
LC=LC->next;
LA=LA->next;
LB=LB->next;
}
else{
LA=LA->next;
LB=LB->next;
}
}
}
if(LA!=NULL){
LC->next=LA;
}
if(LB!=NULL){
LC->next=LB;
}
if(LA==NULL&&LB==NULL){
LC->next=NULL;
}
}

运行结果及报错内容

Error:Segmentation

我的解答思路和尝试过的方法
我想要达到的结果

while循环中,应该用if else if else语句,不是if if if,如下:

void polyAdd(PolyList LA, PolyList LB, PolyList LC)
{
    int sum;
    LA = LA->next;
    LB = LB->next;
    while (LA != NULL && LB != NULL) {
        if (LA->exp > LB->exp) {
            LC->next = LA;
            LC = LA;
            LA = LA->next;
        }
        else if (LA->exp < LB->exp) {
            LC->next = LB;
            LC = LB;
            LB = LB->next;
        }
        else {
            sum = LA->coef + LB->coef;
            if (sum != 0) {
                LC->next->coef = sum;
                LC->next->exp = LA->exp;
                LC = LC->next;
                LA = LA->next;
                LB = LB->next;
            }
            else {
                LA = LA->next;
                LB = LB->next;
            }
        }
    }
    if (LA != NULL) {
        LC->next = LA;
    }
    if (LB != NULL) {
        LC->next = LB;
    }
    if (LA == NULL && LB == NULL) {
        LC->next = NULL;
    }
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632