关于在链表中的段错误

如若在“合并链表并去除重复元素”的执行语句:

while(p3->data==p1->data&&p1)p1=p1->next;
while(p3->data==p2->data&&p2)p2=p2->next;

用来跳过链表L1/L2中与新建的链表重复的元素,注意如果这么写的话可能会出现“段错误”:

当p1跳到NULL的时候进入下一个循环,判断括号里的条件时时会先判断&&前

此时NULL无data区域,因此会出现段错误

讲他改正如下即可:

while(p1&&p3->data==p1->data)p1=p1->next;
while(p2&&p3->data==p2->data)p2=p2->next;

posted @ 2020-04-30 15:44  Gx_y  阅读(996)  评论(1)    收藏  举报