1.3 删除重复结点 1.3.1 算法思想及算法流程图 算法基本思想:
时间: 2024-10-12 07:09:58 浏览: 23
删除链表中的重复节点通常涉及到遍历链表,同时维护一个哈希集合(如Python中的set或Java中的HashSet)来记录已访问过的节点值。基本思路是:
1. 遍历链表,对于每个节点,检查其值是否已经在集合中。如果不在,将当前节点加入集合并继续遍历;如果已在集合中,则删除当前节点。
2. 使用两个指针,一个普通遍历节点,一个跟踪上一次遇到的不重复节点,当遇到重复节点时,只需更新普通指针即可。
算法流程图大致可以这样表示:
```
开始 -> 初始化集合和两个指针(p = head, last_non_duplicate = None)
while p:
if p.value not in 集合:
集合.add(p.value)
如果 last_non_duplicate != None:
last_non_duplicate.next = p
else:
head = p
p = p.next
else:
删除 p (使其指向下一个节点)
结束
```
阅读全文