提示:这里简述项目相关背景:
链表练习题
提示:这里描述项目中遇到的问题:
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
提示:这里填写问题的分析:
虚拟节点:
提示:这里填写该问题的具体解决方案:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* removeElements(struct ListNode* head, int val) { struct ListNode* Node=(struct ListNode*)malloc(sizeof(struct ListNode)); Node->next=head; struct ListNode* prev=Node; struct ListNode* cur=head; if(head==NULL)return head; while(cur!=NULL) { if(cur->val==val) { prev->next=cur->next; free(cur); } else { prev=cur; cur=cur->next; } } return Node; }