题目描述
解答
本题的方法是在头节点前创建一个哨兵节点即可,比较简单。
struct ListNode
* removeElements(struct ListNode
* head
, int val
){
if(!head
) return false
;
struct ListNode
* guard
=malloc(sizeof(struct ListNode
));
guard
->next
=head
;
struct ListNode
*pre
=guard
,*p
=head
;
while(p
&&pre
)
{
if(p
->val
==val
)
{
pre
->next
=p
->next
;
p
=pre
->next
;
}
else
{
p
=p
->next
;
pre
=pre
->next
;
}
}
head
=guard
->next
;
free(guard
);
return head
;
}
转载请注明原文地址:https://blackberry.8miu.com/read-14731.html