​LeetCode解法汇总83. 删除排序链表中的重复元素

2024-01-21

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接: . - 力扣(LeetCode)

描述:

给定一个已排序的链表的头 head 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表

示例 1:


输入:head = [1,1,2]
输出:[1,2]
  

示例 2:


输入:head = [1,1,2,3,3]
输出:[1,2,3]
  

提示:

  • 链表中节点数目在范围 [0, 300]
  • -100 <= Node.val <= 100
  • 题目数据保证链表已经按升序 排列

解题思路:

使用set存储所有遍历过的节点,

如果set中有该值,则无需处理,说明重复。

如果set中无该值,则需要判断头节点是否为空,为空则设置为头节点,否则插入到尾节点的后面。

代码:

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        Set<Integer> set = new HashSet<>();
        ListNode top = null;
        ListNode last = null;

        while (head != null) {
            ListNode next = head.next;
            if (!set.contains(head.val)) {
                set.add(head.val);
                if (top == null) {
                    top = head;
                } else {
                    last.next = head;
                }
                last = head;
                last.next = null;
            }
            head = next;
        }
        return top;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

​LeetCode解法汇总83. 删除排序链表中的重复元素 的相关文章

随机推荐

  • Effective C++——尽可能使用const

    const允许指定一个语义约束 也就是指定一个 不该被改动 的对象 而编译器会强制实施这项约束 只要保持某个值不变是事实 就应该说出来 以获得编译器的协助 保证不被违反 const与指针 注意const的写法 const char p p可
  • 游戏开发常用实践操作之按动任意键触发

    接下来一些笔记会对于一些大大小小的实践操作进行记录 希望对你有所帮助 在游戏中 我们经常会遇到一些按动任意键触发的操作 接下来展示核心代码 以下是对于Unity中的操作 使用的UI是NGUI 对于核心操作没有影响 你可以自己置换 void
  • 游戏开发常见操作系列之敌人系统的开发一(U3D)

    在开发游戏的过程中 我们常常会出现一些敌人攻击我们玩家 并且实现掉血以及死亡的现象 敌人还会源源不断地生成 这是怎么制作的呢 接下来为大家提供方法 其中使用了NGUI 后续会更新其它方法 敬请期待 使用HUDText实现扣血时显示文本 直接
  • 【C++】static_cast和dynamic_cast使用详解

    目录 一 static cast 二 dynamic cast 三 总结 如果这篇文章对你有所帮助 渴望获得你的一个点赞 一 static cast static cast 是 C 中的一种 类型转换操作符 用于执行编译时的类型转换 它主要
  • 探索Web开发的未来——使用KendoReact服务器组件

    Kendo UI 是带有jQuery Angular React和Vue库的JavaScript UI组件的最终集合 无论选择哪种JavaScript框架 都可以快速构建高性能响应式Web应用程序 通过可自定义的UI组件 Kendo UI可
  • 数据结构——排序

    前言 哈喽小伙伴们好久不见 也是顺利的考完试迎来了寒假 众所周知 不怕同学是学霸 就怕学霸放寒假 假期身为弯道超车的最佳时间 我们定然是不能懒散的度过 今天我们就一起来学习数据结构初阶的终章 七大排序 本文所有的排序演示都为升序排序 目录
  • 「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(二)

    DHTMLX Gantt 是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表 可满足项目管理应用程序的所有需求 是最完善的甘特图图表库 在web项目中使用DHTMLX Gantt时 开发人员经常需要满足与UI外观相关的各种需求 因此他
  • 【C++】__declspec含义

    目录 一 declspec dllexport 如果这篇文章对你有所帮助 渴望获得你的一个点赞 一 declspec dllexport declspec dllexport 是 Microsoft Visual C 编译器提供的一个扩展
  • 【计算机毕业设计】北京医疗企业固定资产管理系统的设计与实现 _4c4c1

    近年来 人们的生活方式以网络为主题不断进化 北京医疗企业固定资产管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工
  • DevExpress Web Report Designer中文教程 - 如何自定义控件和表达式注册?

    获取DevExpress v23 2正式版下载 Q技术交流 909157416 自定义控件集成 DevExpress Reports中的自定义报表控件注册变得更加容易 为了满足web开发人员的需求 DevExpressv23 1 包括简化的
  • 「工业遥测」图表控件LightningChart在制造加工业中的应用

    LightningChart NET 完全由GPU加速 并且性能经过优化 可用于实时显示海量数据 超过10亿个数据点 LightningChart包括广泛的2D 高级3D Polar Smith 3D饼 甜甜圈 地理地图和GIS图表以及适用
  • DevExpress WinForms导航控件 - 交付更时尚、体验更好的业务应用(一)

    DevExpress WinForms的Side Navigation 侧边导航 和Nav Panel 导航面板 可以帮助客户交付完全可模仿UI体验的业务解决方案 这些体验在当今流行的应用程序中都可找到 DevExpress WinForm
  • 红警源代码居然开源!附Githu链接

    红警 或者更准确地说 应该称为 红色警戒 是大多数80后记忆中与游戏最深刻的联系之一 几乎每位80后都有一段难以忘怀的红警时光 这款游戏几乎成为许多人青春的代名词 在2000年之后 星际和红警几乎成为了每个网吧不可或缺的游戏 这款游戏是由当
  • 基于 Blinn-Phong 的高性能 Shader,支持阴影和环境反射

    引言 社区高产大户孙二喵同学今天给大家带来了全套的传统光照模型 Shader 并集成了 Cocos Creator 的光照 阴影和环境反射能力 让你在渲染效果和性能之间自由权衡 正文开始 Cocos Creator 引擎的 3D 渲染功能
  • 界面控件DevExpress WPF属性网格 - 让应用轻松显示编辑各种属性事件

    DevExpress WPF Property Grid 属性网格 灵感来自于Visual Studio Visual Studio启发的属性窗口 对象检查器 让在WPF应用程序显示和编辑任何对象的属性和事件变得更容易 P S DevExp
  • HTML概述、基本语法(表格整理、标签、基本结构)

    一 HTML概述 HTML指的是超文本标记语言 超文本 是指页面内可以包含图片 链接 声音 视频等内容 标记 标签 通过标记符号来告诉浏览器页面该如何显示 我们可以打开浏览器 右击页面 点击 查看网页源代码 来方便了解HTML标签通过浏览器
  • 游戏开发中常见系统梳理之背包系统的实现一

    游戏中几乎都存在大大小小的背包系统 接下来我将讲述背包系统具体是如何实现的 完整源码 以下是使用unity NGUI实现 使用txt配置的方法 后续更新UGUI Json实现的背包系统敬请期待 背包中的物品我们常常将其制作成预设体 通过改变
  • 揭秘看不见人的“黑灯工厂”

    你知道吗 未来工厂不需要人也能24小时运转 未来机器能自己配合的天衣无缝 未来工厂连一点灰尘都进不去 未来自研的智能化设备甚至几秒就能生产出一部手机 千万不要惊讶 其实这样的工厂已经在我们的身边 很可能你在元旦买到的一件衣服 一部手机就是
  • 点击存储到固定时间清除存储

    这段代码 无意间想到的 随便写了下来 运行 根据点击之后传递一个参数 将他存入本地存储 方便测试为10秒 10秒后触发下一个事件 清除本地存储 结束
  • ​LeetCode解法汇总83. 删除排序链表中的重复元素

    目录链接 力扣编程题 解法汇总 分享 记录 CSDN博客 GitHub同步刷题项目 https github com September26 java algorithms 原题链接 力扣 LeetCode 描述 给定一个已排序的链表的头