请dl看看问题出在哪里呢

img

img

while循环中语句交换一下,改为:
pre = p;
p = p->next;

img


这不对。
删除节点
A->B->C->D
例如 我要删除B节点

// 头节点
GoodsList *p = L;  // L                    指向 ->A;
// 找结点
GoodsList * s = 0; // 如果可以的话 ,0 应该写成NULL,
p->next;                 // p->next         指向 ->B;
// 这里是循环找。
while(p){
      if(strcmp(p->data.goods_id,goods_id) ==0 ){
           s = p;
           break;
      }
       p=p->next;                            
}
// 我现在找到B节点了  现在 s指向 B        s->B                        s= s->next;               // s->next 指向的是C     相当于 A-> B -> C   把 A-> 直接指向C了。                 
//就把B删掉了。