L2-002 链表去重
时间: 2023-10-05 14:06:50 浏览: 225
链表去重c语言实现.md
对于链表去重的问题,一种常见的解决方法是使用哈希表。具体步骤如下:
1. 初始化一个哈希表或者集合,用于存储已经出现过的节点的值。
2. 遍历链表,对于每个节点,检查其值是否已经在哈希表中存在。
- 如果值不存在于哈希表中,则将该值添加到哈希表,并继续遍历下一个节点。
- 如果值存在于哈希表中,则删除当前节点,即将当前节点的前一个节点指向当前节点的下一个节点,跳过当前节点。
3. 遍历完链表后,即可得到去重后的链表。
这种方法的时间复杂度为 O(n),其中 n 是链表的长度。以下是示例代码(使用Python语言实现):
```python
def remove_duplicates(head):
if not head:
return head
visited = set()
visited.add(head.val)
curr = head
while curr.next:
if curr.next.val in visited:
curr.next = curr.next.next
else:
visited.add(curr.next.val)
curr = curr.next
return head
```
注意:以上代码仅展示了一种可能的解法,具体实现方式可能因编程语言和具体问题而有所不同。
阅读全文