【发布时间】:2019-04-04 04:55:54
【问题描述】:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* removeElements(struct ListNode* head, int val) {
struct ListNode *beforeNode = head;
while(beforeNode != NULL){
if(head == beforeNode && head->val == val){
struct ListNode* q = head;
head = q->next;
beforeNode = head;
free(q);
}
else if(beforeNode->next != NULL && beforeNode->next->val == val){
struct ListNode *p = beforeNode->next;
beforeNode = p->next;
free(p);
}
else
beforeNode = beforeNode->next;
}
return head;
}
【问题讨论】:
-
我看不出这段代码有什么问题
-
你得到什么错误?
-
你能提供一段完整的可编译代码吗?
-
不,我没有遇到问题,但 leetcode 编译器说您使用了已释放的内存,但我不这么认为。这可能是他们的问题
-
@bake 为了理解这一点,我们需要足够的代码来复制问题。
标签: c