删除链表中重复的节点(Java实现)

2023-11-13

  • 问题描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

  • 解决方案

注意边界即可,代码如下:

/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public ListNode deleteDuplication(ListNode pHead)
    {
        if(pHead == null)
            return pHead;
        //标记头结点是否需要删除,需要删除,最后处理
        boolean flag =false;
        int temp = 0;
        if(pHead.next != null && pHead.next.val == pHead.val){
             flag = true;
            temp = pHead.val;
        }
        ListNode cur = pHead;
        ListNode del = null;
        while(cur.next != null && cur.next.next != null){
            if(del != null && cur.next.val == del.val){
                cur.next = cur.next.next;
            }
            else if(cur.next.next.val == cur.next.val){
                del = cur.next;
                cur.next = cur.next.next;
            }
            else
                cur = cur.next;
        }
        //处理最后一个节点需要删除的情况  
        if(del != null && cur.next!= null && cur.next.val == del.val)
            cur.next = null;
        //处理头结点需要删除的情况    
        while(flag && pHead != null && pHead.val == temp)
            pHead = pHead.next;
        return pHead;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除链表中重复的节点(Java实现) 的相关文章

  • 时序预测

    时序预测 MATLAB实现ARIMA时间序列预测 GDP预测 目录 时序预测 MATLAB实现ARIMA时间序列预测 GDP预测 预测效果 基本介绍 模型设计 模型分析 学习总结 参考资料 预测效果 基本介绍 GDP是英文Gross Dom
  • AOP失效的原因之一(踩坑)

    背景 项目需求 需要检测其他同事的部分功能 自然想到的切面编程 按照网上的流程 很容易就完成了AOP的触发 但最近突然发现 之前的一个AOP突然就失效了 切面代码 AfterReturning pointcut save returning
  • cesium设置token

    cesium使用需要token 1 登录cesium地址 https ion cesium com 没有账号的自己注册 注册流程 创建成功后 会显示刚创建的信息 然后选中后 右边即可看到token 复制即可使用 代码中使用方式 Cesium
  • 腾讯云COS+PicGo+Typora十分钟搭建自己的图床

    文章目录 一 腾讯云配置 1 购买COS 新人可以1元购相当于白嫖 2 前往对象存储页面创建存储桶 3 在存储桶中创建文件夹 4 回到概览获取基本信息 5 获取用户密钥管理 二 配置PicGo 1 下载安装PicGo 2 配置PicGo 三
  • FCN(全卷积网络)详解

    FCN详解 全卷积网络就是在全连接网络的基础上 通过用卷积网络替换全连接网络得到的 首先看一下什么是全连接网络 以及全连接网络的缺点 通常的CNN网络中 在最后都会有几层全连接网络来融合特征信息 然后再对融合后的特征信息进行softmax分
  • 3个收缩/展开/折叠的js代码

    第一种
  • 心理学的166个现象---之八

    141 同体效应 同体效应也称自己人效应 是指学生把教师归于同一类型的人 是知心朋友 学生对 自己人 的话更信赖 更易于接受 管理心理学中有句名言 如果你想要人们相信你是对的 并按照你的意见行事 那就首先需要人们喜欢你 否则 你的尝试就会失
  • (#########优化器函数########)TensorFlow实现与优化深度神经网络

    反正是要学一些API的 不如直接从例子里面学习怎么使用API 这样同时可以复习一下一些基本的机器学习知识 但是一开始开始和以前一样 先直接讲类和常用函数用法 然后举例子 这里主要是各种优化器 以及使用 因为大多数机器学习任务就是最小化损失
  • AD添加3D模型

    对于为给PCB添加3D模型 很多人觉得这是个绣花针的活 中看不中用 在我看来这也未必 特别是常用的3D模型能在网上下载的今天 只需要几个简单的操作 就能使你的PCB更加赏心悦目 除此之外 3D模型还有以下优点 优化元器件的布局 检查元件焊盘
  • 快速删除系统服务命令 sc delete ServiceName

    快速删除系统服务命令 sc delete ServiceName 要删除名为ServiceName的服务 可以用XP自带服务管理工具 SCP sc exe命令用以下命令即可删除指定的服务 sc delete ServiceName这些命令的
  • 解决httpd: Could not reliably determine the server's fully qualified domain name

    測試系統 mdv2007 service httpd restart 出現下面錯誤 Shutting down httpd OK Starting httpd httpd Could not reliably determine the s
  • 如何测试生成式人工智能(AIGC)

    简介 在人工智能日趋普及的今天 生成式人工智能 AIGC 已经成为不可忽视的一个分支 从自动化生成新闻 编写代码到图像和音频生成 AIGC几乎无处不在 但如何确保这些生成的内容达到预期标准 安全可靠 同时又具有高度的可用性呢 这是一个值得细
  • 使用hyper-V 编译和调试Android13(android-13.0.0_r3)源码

    环境 windows10 hyper V ubuntu20 4 LST 之前写了一篇Andrid9的编译 但是之前是使用的Vmware虚拟机 ubuntu20 4 LST 由于重装系统 Vmware不见了 不想单独装个虚拟机软件 加上现在w
  • matlab读取文件各种方法

    本技术支持指南主要处理 ascii binary and mat files 要得到matlab中可用来读写各种文件格式的完全函数列表 可以键入以下命令 help iofun matlab中有两种文件i o程序 high level and

随机推荐

  • js6语法总结

    Vuex Action的 commit
  • Linux定时任务crontab

    格式要求如下 For details see man 4 crontabs Example of job definition minute 0 59 hour 0 23 day of month 1 31 month 1 12 OR ja
  • IOS 图片转换二进制 二进制转换为图片

    类方法 图片 转换为二进制 NSData Image TransForm Data UIImage image NSData imageData UIImageJPEGRepresentation image 0 5 几乎是按0 5图片大小
  • axure到底好不好学,有哪些技巧

    Axure学习难吗 这个问题一直引起很多朋友的讨论 有的觉得难 有的觉得不难 当然 人不一样 每个人的学习方式也不一样 对学习难度的理解自然也不一样 这个问题自然没有定论 在学习的时候 有很多方法可以帮助我们 有不同的意见 我们需要尽可能多
  • 一份完整的问卷模板_Word制作问卷调查模板表「教你复选框打钩」

    作者易雪龙转自 Word联盟 问卷调查相信大家都有用过吧 就是一些问题 然后下面有几个选项给我们选择 类似这种问卷调查模板 其实用Word也是可以制作出来的 今天 易老师就来教一下大家利用Word来制作一份电子版的调查问卷 效果演示 Wor
  • 模型/视图编程

    模型 视图编程 模型 视图编程 模型 视图 委托 模型 视图编程 Qt中的模型 视图架构用来实现大量的数据存储 处理及显示 MVC Model View Controller 包括了3个组件 模型 Model 是应用对象 用来表示数据 视图
  • Lotus Domino Notes表单,页面,视图,文档,域之间的关系

    1 表单 Form 关系型数据库里的 表设计 关系型数据库中通过表设计来定义这张Table上会有哪些字段 字段的类型以及长度等 然后通过Table来创建符合这个Table定义的记录 Record 通常情况下 Lotus通过表单 Form 来
  • Micropython史上最友好的编辑器,小巧精悍

    Python 因为非常好学 易上手故而广受大众的喜欢 micropython 也因此在物联网单片机领域拥有一席之位 并且 python 有着良好的生态环境 功能亦更加丰富 from machine import Pin p0 Pin 0 P
  • 购物商城---SpringMVC拦截器的使用

    springmvc front xml
  • spring data jpa

    Spring Data是什么 Spring Data是一个用于简化数据库访问 并支持云服务的开源框架 其主要目标是使得对数据的访问变得方便快捷 并支持map reduce框架和云计算数据服务 Spring Data 包含多个子项目 Comm
  • 深度学习中矩阵求导公式整理

    深度学习中矩阵求导公式整理 1 两种布局约定方式 2 矩阵求导的类型 3 标量对标量求导 4 向量对标量求导 5 矩阵对标量求导 6 标量对向量求导 7 向量对向量求导 8 标量对矩阵求导 参考文献 1 两种布局约定方式 布局 Layout
  • 机试算法题-敲击计数器

    题目 设计一个敲击计数器 使它可以统计在过去 5 分钟内被敲击次数 即过去 300 秒 您的系统应该接受一个时间戳参数 timestamp 单位为 秒 并且您可以假定对系统的调用是按时间顺序进行的 即 timestamp 是单调递增的 几次
  • CVPR 2022

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 转载自 集智书童 On the Integration of Self Attention and Convolution 论文 https arxiv org abs
  • 回溯算法-----473. 火柴拼正方形&&698. 划分为k个相等的子集

    分享两个回溯算法解决的算法题 和自己以往做这类题目的思路不同 导致这里卡了很久 不得不花几个小时总结一下 火柴拼正方形 首先展示一下自己一开始的回溯算法的解决方式 其实这个也是自己进行了优化之后的 没有优化之前是超时的 public boo
  • 如何导出存储过程、函数、包和触发器的定义语句?如何导出表和索引的创建语句?...

    Oracle中如何导出存储过程 函数 包和触发器的定义语句 如何导出表的结构 如何导出索引的创建语句 QQ群里有人问 如何导出一个用户下的存储过程 麦苗答 方法有多种 可以使用DBMS METADATA GET DDL包 使用PL SQL
  • Java实现质数筛的三种方法

    今天在做一个算法题的时候遇到一个需要求质数的情况 但是本人比较菜只会暴力做法 所以在此记录学习一下质数筛选除了暴力以外的其它做法 注意 一个大于1的自然数 除了1和它自身外 不能被其他自然数整除的数叫做质数 题目 暴力做法 直接根据定义写一
  • docker stats 命令详解

    docker stats 显示容器资源的使用情况 包括 CPU 内存 网络 I O 等 docker stats OPTIONS CONTAINER OPTIONS 说明 all a 显示所有的容器 包括未运行的 format 指定返回值的
  • [NKCTF2023]web/misc/blockchain-wp

    总体体验还是不错的 感谢我的二进制队友带我 WEB babyphp Pop链 链子 destruct gt toString gt invoke 最后要绕一个正则匹配 通过dir命令发现flag在 f1ag中 利用剩下没被过滤的通配符进行匹
  • OpenWRT路由器中监控网络服务并重启的脚本

    转载地址 http jamesqi com E5 8D 9A E5 AE A2 OpenWRT E8 B7 AF E7 94 B1 E5 99 A8 E4 B8 AD E7 9B 91 E6 8E A7 E7 BD 91 E7 BB 9C
  • 删除链表中重复的节点(Java实现)

    问题描述 在一个排序的链表中 存在重复的结点 请删除该链表中重复的结点 重复的结点不保留 返回链表头指针 例如 链表1 gt 2 gt 3 gt 3 gt 4 gt 4 gt 5 处理后为 1 gt 2 gt 5 解决方案 注意边界即可 代