题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。
代码:
/**
* 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;
}
};
本文介绍了一种在单向链表中删除特定值节点的算法实现。通过使用虚拟头节点简化边界条件,遍历链表找到目标节点并调整指针,实现节点的删除。最终返回处理后的链表头节点。
306

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



