从未排序的链表中删除重复项(Python)
问题描述: 给定一个没有排序的链表,删除链表中的重复元素,使得每个元素只出现一次。
示例: 输入:1->2->2->3->4->4->5 输出:1->2->3->4->5
解决方案: 要解决这个问题,可以使用哈希表来记录链表中已经出现过的元素,然后遍历链表,对于每个元素,如果在哈希表中出现过,则将其删除,否则将其添加到哈希表中。
Python代码实现:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteDuplicates(head):
if not head:
return head
# 哈希表用于记录已经出现过的元素
seen = set()
seen.add(head.val)
# 遍历链表,删除重复元素
current = head
while current.next:
if current.next.val in seen:
current.next = current.next.next
else:
seen.add(current.next.val)
current = current.next
return head
优势:
应用场景:
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行决策。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云