题解 | #删除链表中重复的结点#

删除链表中重复的结点

http://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef

字典计数,数组转链表的解法

class Solution:

    def deleteDuplication(self , pHead: ListNode) -> ListNode:
        # write code here
        if not pHead: return None
        """用字典记录链表每个元素出现次数"""
        dic={}
        curr=pHead
        while curr:
            dic[curr.val]=dic.get(curr.val,0)+1
            curr=curr.next
        """选出出现次数为1的元素"""
        ans=[]
        for k,v in dic.items():
            if v==1: ans.append(k)
        return self.li2linkli(ans)

    def li2linkli(self,li):
        if not li: return None
        self.head=ListNode(li[0])
        if len(li)==1: return ListNode(li[0])
        temp=self.head
        for item in li[1:]:
            item=ListNode(item)
            temp.next=item
            temp=temp.next
        return self.head
题解-数据结构与算法 文章被收录于专栏

小菜鸟的题解

全部评论

相关推荐

那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务