删除重复值的结点

删除重复值的结点

问题重述:

给定一个无序单链表的头节点head,删除其中值重复出现的结点

问题分析:

这道题要删除重复值的结点,我们可以想到哈希表,因为哈希表是无序不重复的,我们使用哈希表对值进行保存,后续加入的值如果已经在哈希表中存在了,就删除,否则就加入哈希表

解法:

哈希表,或者多次遍历

解题:

代码:
public static Node deleteRepeatNode1(Node head) {
        if(head == null) {
            return head;
        }
        HashSet set = new HashSet();
        Node pre = head;
        Node cur = head.next;
        set.add(head.value);
        while(cur != null) {
            if(set.contains(cur.value)) {
                pre.next = cur.next;
            }else {
                set.add(cur.value);
                pre = cur;
            }
            cur = cur.next;
        }
        return head;
    }
    public static Node deleteRepeatNode2(Node head) {
        if(head == null) {
            return head;
        }
        Node pre = null;
        Node cur = head;
        Node next = null;
        while(cur != null) {
            pre = cur;
            next = cur.next;
            while(next != null) {
                if(cur.value == next.value) {
                    pre.next = next.next;
                }else {
                    pre = next;
                }
                next = next.next;
            }
            cur = cur.next;
        }
        return null;
    }

总结:

遇见重复的问题,我们就可以考虑使用哈希表

Original: https://www.cnblogs.com/foldn/p/15918715.html
Author: foldn
Title: 删除重复值的结点

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/579762/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • springcloud整合nacos配置中心

    最近实物资产管理运维产品pams系统架构搭建中,涉及到配置中心的问题,在这里做个记录,作为第一手经验分享,也是自我备忘吧。 整个体系,目前一共有10+个中等粒度的微服务,每个服务都…

    Java 2023年5月30日
    0103
  • 3-面向对象(2)

    一、Object类的使用 1.java.lang.Object类的说明: Object类是所Java类的根父类 如果在类的声明中未使用extends关键字指明其父类,则默认父类为j…

    Java 2023年6月7日
    070
  • SpringBoot下使用AOP做日志

    AOP实现接口执行时间的计算: SpringBoot项目导入spring-boot-starter-aop依赖 编写切面类 类上加@Aspect注解,表明这是一个切面类 类上加@C…

    Java 2023年6月6日
    072
  • javaweb学习

    了解HTTP posted @2022-03-24 21:19 HelloHui 阅读(8 ) 评论() 编辑 Original: https://www.cnblogs.com/…

    Java 2023年6月9日
    082
  • cookie、session和token的区别

    cookie、session和token的区别 cookie: · 表示用户身份,一小段文本信息 · 服务端生成,发送客户端保存,正在客户端头信息中,可能被用户篡改。 · 相当于钥…

    Java 2023年5月30日
    074
  • java Future CompletableFuture

    1.1 概述 Future没法直接对多个任务进行链式、组合等处理,而CompletableFuture是对Future的扩展和增强。CompletableFuture实现了Futu…

    Java 2023年5月29日
    0105
  • javaNIO:选择器–实践 Selector

    选择器服务器端代码 选择器的优点和注意点: 1.在传统io soket进行网络通信的时候,使用的阻塞通道,我们能知道什么时候写什么时候读,因为是阻塞的。但在 nio 引入了非阻塞之…

    Java 2023年5月29日
    076
  • Spring Cloud Gateway 过滤器

    一、GatewayFilter 网关过滤器 GatewayFilter介绍 GatewayFilter 网关过滤器用于拦截并链式处理web请求,可以实现横切的与应用无关的需求,比如…

    Java 2023年5月30日
    063
  • 同时在多个 Git 分支上工作,老板要榨干我

    背景 上一篇文章 保持清洁的Git提交记录,三招就够了 ,大家看过后有私下留言说这是非常好用的功能,我突然想到工作中用到的另外一个 Git 功能那也是相当好用,必须全盘托出 作为程…

    Java 2023年6月5日
    091
  • 【声音工厂】微信小程序开发记录 为电台开发的微信小程序 【介绍】

    1.项目背景 因为在电台实习,所以想开发一个专为电台工作的播音员 上传配音的作品的微信小程序,上传的作品有 视频 音频 2.实现的功能有 微信小程序: 播放视频 音频 收藏喜欢的作…

    Java 2023年6月8日
    075
  • 【金九银十必问Java面试题】工作六年面试被问JVM为什么使用元空间替换了永久代?

    “JVM 为什么使用元空间替换了永久代?”这是一个工作6年的同学去字节第一面遇到的问题,很遗憾,他没有回答出来大家好,我是Mic,一个工作了14年的Java…

    Java 2023年6月16日
    084
  • css 隐藏元素

    display , visibility 仅会改变元素显示,不会改变元素种类。可以配合 js 使用使元素可以动态的显示隐藏。 可以使用 display 或 visibility 实…

    Java 2023年6月5日
    096
  • Java 基础 (Java 反射机制)

    Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API 取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完…

    Java 2023年5月29日
    089
  • 好用到爆!GitHub 星标 32.5k+的命令行软件管理神器,功能真心强大!

    前言(废话) 本来打算在公司偷偷摸摸给星球的用户写一篇编程喵整合 MongoDB 的文章,结果在通过 brew 安装 MongoDB 的时候竟然报错了。原因很简单,公司这台 Mac…

    Java 2023年6月9日
    091
  • 利用Spring AOP切面对用户访问进行监控

    开发系统时往往需要考虑记录用户访问系统查询了那些数据、进行了什么操作,尤其是访问重要的数据和执行重要的操作的时候将数记录下来尤显的有意义。有了这些用户行为数据,事后可以以用户为条件…

    Java 2023年6月5日
    0111
  • 建造者模式(创建型)

    建造者模式 介绍 建造者模式注重的是部件构建的过程,意在 通过一步一步地精确构造出一个复杂的对象。 可以将建造者模式理解为,假设我们有一个对象需要建立,这个对象是由多个组件(Com…

    Java 2023年6月15日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球