题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/699abfcaf2e6f8c1c779f5b7dcb43b2b.png)
代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* deleteNode(ListNode* head, int val) {
auto dummy=new ListNode(-1);
dummy->next=head;
auto a=dummy,b=a->next;
while(b&&b->val!=val){
a=a->next;
b=b->next;
}
a->next=a->next->next;
return dummy->next;
}
};