问答题

用单链表保存m个整数,节点的结构为(data,link),且|data|<n(n为正整数)。现要求设计一个时间复杂度尽可能高效地算法,对于链表中绝对值相等的节点,仅保留第一次出现的节点而删除其余绝对值相等的节点。
例如若给定的单链表head如下。

(1)给出算法的基本思想
(2)使用c或c++语言,给出单链表节点的数据类型定义。
(3)根据设计思想,采用c或c++语言描述算法,关键之处给出注释。

【参考答案】

(1)算法思想:
定义一个大小为N的数组,初始化为0在遍历链表的同时将数组中索引值为节点的值得绝对值的元素置1......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)