zoukankan      html  css  js  c++  java
  • AcWing 29. 删除链表中重复的节点

    题目地址 https://www.acwing.com/problem/content/description/27/

    来源:剑指Offer

    题目描述
    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留。

    样例

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

    算法1
    这是投机取巧的做法
    在时间和空间不太要求的情况下
    可使用STL进行unique的操作
    遍历链表 将元素放进map
    在遍历map将不重复的元素放进链表
    注意边界条件

    C++ 代码

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        map<int,int> s;
        ListNode* deleteDuplication(ListNode* head) {
            ListNode* p = head;
            //边界情况直接返回
            if(p == NULL)
                return p;
            //将链表数值放入map 让容器自动去重
            while(p != NULL){
                s[p->val]++;
                p = p->next;
            }
    
            p = head;
            ListNode* pre=head;
            //遍历容器 再次放入链表
            for(auto& e:s){
                if(e.second == 1){
                    p->val = e.first;
                    pre = p;
                    p = p->next;
                }
            }
            //多余的链表删除 这里直接NULL 没有释放
            pre->next=NULL;
            //注意边界条件
            if(pre == head)
                return NULL;
            return head;
        }
    };

    作者:defddr
    链接:https://www.acwing.com/solution/AcWing/content/2877/
    来源:AcWing
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    Kafka-Docker:使用Docker运行Apache Kafka的步骤
    Apache Kafka Connect
    如何创建Kafka客户端:Avro Producer和Consumer Client
    Kafka排队:Apache Kafka作为消息传递系统
    Kafka Broker | 命令行选项和过程
    Apache Kafka Consumer 消费者集
    Apache Kafka Producer For Beginners
    设置Kafka集群的方法
    Apache Kafka工作流程| Kafka Pub-Sub Messaging
    Linux Ubuntu config source
  • 原文地址:https://www.cnblogs.com/itdef/p/11201797.html
Copyright © 2011-2022 走看看