题目描述
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
代码:
struct ListNode* removeElements(struct ListNode* head, int val){
while(head){
if(head->val==val)
head=head->next;
else
break;
}
if(head==NULL) //如果链表为空直接返回NULL
return NULL;
struct ListNode* p=head;
while(p->next!=NULL){
if(p->next->val==val)
p->next=p->next->next;
else
p=p->next;
}
return head;
}
ps:感觉没有头结点复杂很多。
本文介绍了一种从链表中删除所有等于给定值节点的算法实现,通过示例展示了输入为1->2->6->3->4->5->6, val=6时,输出1->2->3->4->5的过程。代码采用C语言结构体实现,无需额外头结点简化操作。
607

被折叠的 条评论
为什么被折叠?



