[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!
评论