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

删除链表中重复的结点

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
题解-数据结构与算法 文章被收录于专栏

小菜鸟的题解

全部评论

相关推荐

昨天 00:11
已编辑
广东工业大学 算法工程师
避雷深圳  yidao,试用期 6 个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务