/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
/*
* @param head: a ListNode
* @param val: An integer
* @return: a ListNode
*/
ListNode * removeElements(ListNode * head, int val) {
if(head != NULL)
{
ListNode * temp = head;
ListNode * result = NULL,* res = NULL;
for(;temp != NULL;temp = temp->next)
{
if(temp->val != val)
{
if(res != NULL)
{
res->next = temp;
res = res->next;
}
else
{
res = temp;
result = temp;
}
}
}
if(res != NULL)
res->next = NULL;
return result;
}
return NULL;
}
}; 简单但没有一次过,认知:①随时注意逻辑的死角,一定要确保所有的地方都考虑到了Lintcode 入门-452. 删除链表中的元素
最新推荐文章于 2020-12-10 15:55:30 发布
本文介绍了一种从单链表中移除特定值的所有节点的算法实现。通过遍历链表并创建新链表的方式,该算法有效地实现了指定值节点的移除,并确保了逻辑的完整性。
230

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



