Leetcode力扣秋招刷题路-0082

news2025/7/18 3:37:47

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结

82. 删除排序链表中的重复元素 II

给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。

示例 1:
在这里插入图片描述

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

示例 2:
在这里插入图片描述

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

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

思路:

思路一: 迭代 快慢指针,用快指针跳过那些有重复数组,慢指针负责和快指针拼接!

思路二:递归

相关题目:83. 删除排序链表中的重复元素

代码:

思路一:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null) return head;
        ListNode dummy = new ListNode(-1000);
        dummy.next = head;
        ListNode slow = dummy;
        ListNode fast = dummy.next;
        while (fast != null) {
            while (fast.next != null && fast.val == fast.next.val) fast = fast.next;
            if (slow.next == fast) slow = slow.next;
            else slow.next = fast.next;
            fast = fast.next;
        }
        return dummy.next; 
    }
}

思路二:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null)  return head;
        if (head.next != null && head.val == head.next.val) {
            while (head.next != null && head.val == head.next.val) {
                head = head.next;
            }
            return deleteDuplicates(head.next);
        }
        else head.next = deleteDuplicates(head.next);
        return head;    
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/361356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这6个视频剪辑素材库,你一定要知道~

推荐5个免费商用视频素材网站&#xff0c;建议收藏哦&#xff01; 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 网站素材量很大&#xff0c;有设计、图片、音频、视频等超多素材&#xff0c;大部分都能免费下载。视频素材都很高清&#xff0c;有自然、人物、科技、农业…

前端页面开发模块组织结构

模块组织 任何超过 1000 行的 CSS 代码,你都曾经历过这样的体验: 这个 class 到底是什么意思呢?这个 class 在哪里被使用呢?如果我创建一个 xxoo class,会造成冲突吗?Reasonable System for CSS Stylesheet Structure 的目标就是解决以上问题,它不是一个框架,而是通过…

Freemarker快速入门

freemarker提供很多指令用于解析各种类型的数据模型参考地址&#xff1a;http://freemarker.foofun.cn/ref_directives.html一.测试搭建Freemarker的运行环境并进行测试.1.添加Freemarker与SpringBoot的整合包XML <!-- Spring Boot 对结果视图 Freemarker 集成 --> <d…

互斥锁原理

如果有交互的公共数据区域&#xff0c;我们需要让一个进程先执行&#xff0c;一个进程后执行&#xff0c;互斥锁就是用锁的方式让他们的竞争关系变得有序。 临界区问题 临界区是在程序之间有公共数据交互时产生的区域&#xff0c;没有两个进程可以在它们各自的临界区同时执行…

我的 System Verilog 学习记录(1)

引言 技多不压身&#xff0c;准备开始学一些 System Verilog 的东西&#xff0c;充实一下自己&#xff0c;这个专栏的博客就记录学习、找资源的一个过程&#xff0c;希望可以给后来者一些借鉴吧&#xff0c;IC找工作的都加把油&#xff01; 本文是准备先简单介绍一下环境搭建…

C++11智能指针std::shared_ptr介绍及使用

介绍 shared_ptr是一种智能指针(smart pointer)&#xff0c;作用有如同指针&#xff0c;但会记录有多少个shared_ptrs共同指向一个对象。这便是所谓的引用计数(reference counting),比如我们把只能指针赋值给另外一个对象,那么对象多了一个智能指针指向它,所以这个时候引用计数…

洛谷P1125 [NOIP2008 提高组] 笨小猴 C语言/C++

[NOIP2008 提高组] 笨小猴 题目描述 笨小猴的词汇量很小&#xff0c;所以每次做英语选择题的时候都很头疼。但是他找到了一种方法&#xff0c;经试验证明&#xff0c;用这种方法去选择选项的时候选对的几率非常大&#xff01; 这种方法的具体描述如下&#xff1a;假设 maxn\…

【C++】2.类和对象(上)

1.面向过程和面向对象 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成。 2.类的引入…

【发版或上线项目保姆级心得】

第一步&#xff1a;先在正式环境创建数据库/新增表格或者字段 在数据库表中增加字段/表格&#xff0c;不会报错。 但是切记不要过早数据库字段/表格或者删除字段/表格 第二步&#xff1a;修改配置文件 先将正式环境需要的配置给写好&#xff0c;包括但不仅限于数据库配置、…

秋招面试问题整理之机器学习篇

文章目录随机森林在决策树的哪些方面做出了改进随机森林里每棵树的权重不一定会变成什么模型方差和偏差&#xff0c;正则化解决的是方差大还是偏差大的问题正则化的方法总结了解VC维吗svd了解吗随机森林在决策树的哪些方面做出了改进 回答思路&#xff1a; 随机森林和决策树有…

同步syslog日志到服务端

目录结构前言Windows下安装syslog服务端&#xff08;Syslog Watcher Manager&#xff09;Linux下syslog服务端搭建java同步日志代码块日志同步测试前言 系统同步日志到syslog服务器&#xff0c;此文章记录以下内容&#xff1a; Windows下syslog服务端&#xff08;Syslog Watc…

主食吃什么最健康?

又到了订饭的时候了&#xff0c;今天打算吃什么呢&#xff1f;面包&#xff1f;炒饭&#xff1f;面条&#xff1f;还是粥&#xff1f;上面说到的这些都是主食。大家都知道主食能带来很强的饱腹感&#xff0c;而且还是身体最重要、最经济的营养来源。但五谷杂粮&#xff0c;营养…

【项目】好用快搜文档搜索工具

文章目录一、项目分析1、项目调研2、项目需求3、开发环境4、项目知识框架5、项目实现基本理论二、项目设计整体框架设计代码框架设计三、项目实现1、系统工具模块目录遍历2、数据库管理模块2.1、封装数据库管理类(SqliteManager)2.2、封装数据管理类(DataManager)3、扫描模块4、…

紫外线生物素标记Biotin-PEG2-alkyne,UV Cleavable Biotin-PEG2-alkyne

UV Cleavable Biotin-PEG2-alkyne含有紫外线可切割碎片(containsa UV cleavable Fragemnt)&#xff0c;试剂通过点击化学与含叠氮化物的分子反应。点击化学生物素标记试剂包含各种点击化学官能团修饰的生物素&#xff0c;适用于各种生物素标记实验。1.UV Cleavable Biotin-PEG2…

威马汽车:跃马扬鞭未竟,鞍马劳顿难行?

“活下去&#xff0c;像牲口一样地活下去。” 威马汽车创始人、董事长兼CEO沈晖1月在社交媒体上分享的电影台词&#xff0c;已然成为威马近况的真实写照。 来源&#xff1a;新浪微博威马汽车沈晖Freeman 最近&#xff0c;网上出现了大量关于“威马汽车将实施全员停薪留职”的…

【JavaScript速成之路】JavaScript数据类型转换

&#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f525;系列专栏&#xff1a;【JavaScript速成之路】 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; 文章目录前言数据类型转换1&#xff0c;转换为字符串型1.1&#xff0c;利用“”拼接转换成…

8、接口与面向接口编程

目录一、接口的基本概念二、类型断言三、面向接口编程一、接口的基本概念 接口的定义&#xff1a;接口是一组行为规范的集合 type Transporter interface { //定义接口&#xff0c;通常接口名以er结尾//接口里面只定义方法&#xff0c;不定义变量move(src string, dest strin…

10.现代循环神经网络

10.现代循环神经网络 目录 门控循环单元&#xff08;GRU&#xff09;门控隐状态 重置门和更新门候选隐状态 隐状态从零开始实现 初始化模型参数定义模型训练与预测 简洁实现总结 长短期记忆网络&#xff08;LSTM&#xff09; 门控记忆元 输入门、忘记门和输出门候选记忆元记忆…

基于xxx开发板的bluez的移植

基于xxx开发板的bluez的移植1.硬件电路2.软件准备2.1.源码配置2.2 编译源码3.请等待《题外话》&#xff1a;刚开始第一次接触bluez&#xff0c;完全没用过&#xff0c;也没搞过&#xff0c;开局一脸懵逼。刚好项目需要用到&#xff0c;只能硬着头皮上&#xff0c;淦淦淦&#x…

C语言之通讯录的实现

通讯录实现所需头文件和源文件 Contact.h的功能 声明函数和创建结构体变量 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #define MAX 1000 #define MAX_NAME 20 #define MAX…