首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从未排序的链表中删除重复项(Python)

从未排序的链表中删除重复项(Python)

问题描述: 给定一个没有排序的链表,删除链表中的重复元素,使得每个元素只出现一次。

示例: 输入:1->2->2->3->4->4->5 输出:1->2->3->4->5

解决方案: 要解决这个问题,可以使用哈希表来记录链表中已经出现过的元素,然后遍历链表,对于每个元素,如果在哈希表中出现过,则将其删除,否则将其添加到哈希表中。

Python代码实现:

代码语言:txt
复制
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

优势:

  • 时间复杂度为O(n),其中n是链表的长度,每个元素只需要遍历一次;
  • 空间复杂度为O(n),需要额外的空间来存储哈希表。

应用场景:

  • 当需要从未排序的链表中删除重复元素时,可以使用该算法。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 云数据库 TencentDB:https://cloud.tencent.com/product/cdb
  • 云服务器 TencentCloud CVM:https://cloud.tencent.com/product/cvm
  • 云原生容器服务 Tencent Kubernetes Engine:https://cloud.tencent.com/product/tke
  • 云存储 CFS:https://cloud.tencent.com/product/cfs
  • 人工智能腾讯云AI Lab:https://cloud.tencent.com/act/event/AILab
  • 物联网腾讯连连:https://cloud.tencent.com/product/tiiot
  • 移动开发小程序开发:https://cloud.tencent.com/product/wepy
  • 区块链腾讯云区块链服务:https://cloud.tencent.com/product/baas
  • 元宇宙暂无腾讯云相关产品

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券