请问为什么这个力扣题运行的时候测试点能过,但提交的时候却给了这样的报错,是哪个地方错误了吗?

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* deleteDuplicates(struct ListNode* head) {
struct ListNode*p,*p0,*q;
p=head;
while(p->next!=NULL)
{
p0=p;
p=p->next;
if(p0->val==p->val)
{
q=p;
p0->next=p->next;
p=p0;
free(q);
}
}
return head;
}
