Skip to content

2015年 408 数据结构 第 41 题

数据结构2015年综合题15分

题目 ​

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

singly-linked-list
list head: 21, -15, -15, -7, 15

则删除结点后的 head 为:

singly-linked-list
list head: 21, -15, -7

要求:

(1) 给出算法的基本设计思想。

(2) 使用 C 或 C++ 语言,给出单链表结点的数据类型定义。

(3) 根据设计思想,采用 C 或 C++ 语言描述算法,关键之处给出注释。

(4) 说明你所设计算法的时间复杂度和空间复杂度。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数