• 【leetcode】82: 删除排序链表中的重复元素 II


    题目如下所示:

     这个题目我使用字典的方法对其进行了处理,什么意思呢?

    就是首先遍历这个链表,然后使用字典统计每一个数字出现的次数,如果出现的次数大于了1次,那么则将其排序后放到我们新创建的链表里,代码如下:

    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, val=0, next=None):
    #         self.val = val
    #         self.next = next
    class Solution:
        def deleteDuplicates(self, head: ListNode) -> ListNode:
            ls=[]
            while head:
                ls.append(head.val)
                head=head.next
            #使用字典的特性,对出现的数字进行统计
    
            dicton={}
            for key in ls:
                dicton[key]=dicton.get(key,0)+1
            new_ls=[]
            for i in dicton:
                if dicton[i]>1:
                    pass
                else:
                    new_ls.append(i)
            new_ls=sorted(new_ls)
            node=ListNode(0)
            ret=node
            for i in new_ls:
                node.next=ListNode(i)
                node=node.next
            return ret.next

    本题目,主要考察了对python字典的使用,如果熟悉这个特性的话,就可以很快做出此题。

    速度超过全国50%,内存超过全国79%

  • 相关阅读:
    数据结构-串的堆分配存储
    ServerSocket
    Java-坦克大战
    Java-输入输出流
    MyEclipse 快捷键
    数据结构-串的定长顺序存储
    我的软考资料集合
    软考中级软件设计师考试大纲
    2016年第一季度阅读书目
    中国大陆开源镜像网站汇总
  • 原文地址:https://www.cnblogs.com/geeksongs/p/15186727.html
Copyright © 2020-2023  润新知