关于#报错#的问题,如何解决?

img


为什么会这样报错啊,就是这是一个在链表里面查找一个key值并将其删除掉,我看书上明明是这样写的但是就是报错了

数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633

缺少退出循环代码,当在循环中找到了key值,没有直接退出,会接着执行循环,循环体内p2赋值为null,再执行p2->next就报错了。
循环上面也有代码是这种问题,如果head是null, 虽然打印为空,,缺少return,还是会往下执行报错。

初始化head,否则p2一直是空指针

检查是否越界
对于申请到的空间,是否给了默认值||给没有赋初值的指针赋予初值

如果你的p2->next = null的时候 for循环里面p2 = p2->next这时候p2也等于null了 但是循环里面你又用了p2了
p2->num 这时候就会报你图中的错误