题目描述:
解题思路:遍历链表,如果该节点的val值与输入的val值相等就删除该节点(也就是让上一个节点的next直接指向下一个节点)。
代码实现:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* removeElements(struct ListNode* head, int val){
//形参合理判断
if(head==NULL)
{
return NULL;
}
//申请一个头节点
struct ListNode head_1;
head_1.next=head;//将头节点与链表连起来
struct ListNode* p=&head_1;
while(p!=NULL&&p->next!=NULL)
{
if(val==p->next->val)
{
p->next=p->next->next;//删除节点
}
else
{
p=p->next;
}
}
return head_1.next;
}