AcWing 3756. 筛选链表
原题链接
简单
作者:
小.bug
,
2022-08-10 16:02:09
,
所有人可见
,
阅读 466
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* filterList(ListNode* head) {
bool st[10010]; //判断某个数是否出现过
memset(st, false, sizeof st);
st[abs(head->val)] = true;
for(auto p = head; p->next; )
{
int t = p->next->val;
if(st[abs(t)]) //如果该节点的数值的绝对值之前出现过,删除该节点
{
auto o = p->next;
p->next = o->next;
delete o;
}
else //如果该节点的数值的绝对值之前出现过,保留该节点
{
p = p->next;
st[abs(t)] = true;
}
}
return head;
}
};