struct ListNode* removeElements(struct ListNode* head, int val)
{
struct ListNode* prv = NULL;
struct ListNode* cur = head;
// 处理头节点等于val的情况
while (cur != NULL && cur->val == val)
{
head = cur->next;
free(cur);
cur = head;
}
// 处理中间节点和尾节点等于val的情况
while (cur != NULL)
{
if (cur->val == val)
{
prv->next = cur->next;
free(cur);
cur = prv->next;
}
else
{
prv = cur;
cur = cur->next;
}
}
return head;
}
12-05
279
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交