AcWing 3756. 筛选链表
原题链接
简单
作者:
Bear_King
,
2022-01-25 21:50:09
,
所有人可见
,
阅读 195
这里面有2个坑
- 408真题上是带有头结点的,这道题只传进来头指针,所以要在布尔数组里面加上头指针的var
- 往下遍历的时候,要注意,如果删除了就不能往下遍历,会越界,只有没删除节点的时候才能执行p=p->next
/**
* 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] = {};
st[abs(head->val)] = true;
auto p = head;
while(p->next)
{
int t = abs(p->next->val);
if(st[t])
{
auto q = p->next;
p->next = q->next;
delete(q);
}
else
{
st[t] = true;
p = p->next;
}
}
return head;
}
};