[AcWing]3756. 筛选链表
[AcWing]3756. 筛选链表
一个单链表中有 m 个结点,每个结点上的元素的绝对值不超过 n。
现在,对于链表中元素的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。
请输出筛选后的新链表。
例如,单链表 21 -> -15 -> -15 -> -7 -> 15,在进行筛选和删除后,变为 21 -> -15 -> -7。
输入样例:
1 | |
数据范围
1 < m < 1000,1 < n < 10000
算法思想
如果要筛选掉重复的元素,那么必须要有记录每个数字是否出现过的bool st[N]。
而且链表中的第1个元素一定是没出现过的,可以直接标记st为true。
对于p和q,删除点有讲究,如果是删除q,那么成本小得多。
所以q就作为被检查节点
代码实现
1 | |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Phbeats-Blog!
评论







