今天刷力扣的时候遇到一个空指针的报错,报错提示是:
Line 13: Char 17: runtime error: member access within null pointer of type ‘ListNode’ (solution.cpp)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:23:17
在刷一道去年数据结构课上做过的水题,83. 删除排序链表中的重复元素 当时代码是
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
// if(head==nullptr)
// return head;
ListNode *p=head;
while(p->next)
{
if(p->val==p->next->val)
p->next=p->next->next;
else
p=p->next;
}
return head;
}
};
看到报错提示就去翻译了一下报错提示(英语比较菜~),我理解的大概意思是会访问到空指针,就知道了如果head为空,这样执行就会出现访问空指针而报错,所以要加上判断 head为空就直接返回(注释的那两行)。