删除链表中重复的元素

2023-10-31

题目描述:
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
样例:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
分析:
从头结点开始遍历该链表,如果当前结点的值与下一个节点的值相同,那么他们就是重复的节点,都要被删除。因此为了使删除重复节点之后的链表仍然相连,我们要把该节点的上一个节点的next指针指向后面值比当前结点的值大的节点。
要考虑重复节点位于头部、尾部、中间三种情况。

public ListNode deleteDuplication(ListNode head) {
		ListNode newH=new ListNode(0);//新建节点
		ListNode pre=newH;//新建节点的移动节点
		while(head!=null) {
			ListNode next=head.next;
			if(next!=null&&next.val==head.val) {
				int d=head.val;
				while(head!=null&&head.val==d)//直到节点不为空且值不等于d
					head=head.next;
			}else {
				pre.next=head;
				pre=pre.next;
				head=next;
			}
			
		 }
		pre.next=null;
		return newH.next;   
	 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除链表中重复的元素 的相关文章

随机推荐

  • 在Windows上使用clang编译器

    在Stackoverflow等网站上 经常出现各种编译器的对比的结果 其中clang是很常见的 那么 怎样在Windows上使用clang呢 没那么直观 直接去llvm官网上下载clang的发行包 解压 到bin下面 看到应该是我们想要的工
  • QTreeWidget实现的树形节点的添加+双击响应+删除详解

    承接该文http blog csdn net bzhxuexi article details 10054289 在该文基础上继续讲解QTreeWidget控件的使用 同时解决该文最后留下的问题 QTreeWidget是实现树形结构的类 在
  • 微信小程序map组件路线规划,腾讯地图sdk的应用案例

    腾讯地图WebService API 是基于HTTPS HTTP协议的数据接口 开发者可以使用任何客户端 服务器和开发语言 按照腾讯地图WebService API规范 按需构建HTTPS请求 并获取结果数据 目前支持JSON JSONP方
  • stm32f103单片机—编码器测速

    一 涉及资源 stm32f103ZET6开发板 非指定 MG513P3012V型号电机 带霍尔编码器 非指定 二 涉及概念 1 单片机资源要求 此种测速方法要求单片机的定时器具有编码器模式 对于stm32f1系列 具备编码器模式的定时器有T
  • mysql a foreign key constraint fails_MySQL删除表:Cannot delete or update a parent row: a foreign key co...

    MySQL库中有俩表 table1和table2 相互关联 在删除表的时候出错 Cannot delete or update a parent row a foreign key constraint fails 很明显这是表关联生成的强
  • MATLAB APP纯小白入门 两数相加

    万事开头难 最怕第一次 使用matlab APP 实现两数求和 如下图所示 c a b 输入数字后 按 就计算 步骤 拖拽三个 Edit Field Numeric 过来 并且双击名字分别改为 a b c 注意修改名字后右边会有点变化 程序
  • 标准二阶响应--佛朗哥

    如果一个电路对任何有界输入在响应中产生一个有界的输出 就说明这个电路是稳定的 判断一个电路是否稳定一种方法是将某些能量注入到它的电抗元件中的一个或者多个 然后在没有任何外加电源的情况下观察这个电路是如何作为的 这种情况下的响应为无源或者自然
  • STM32F103 GPIO输出模式2MHz,10MHz,50MHz波形对比

    在STM32F103中GPIO的输出模式有三种速度配置 如图所示 经过测试发现 这三种速度的输出模式与IO的翻转频率没有关系 它们影响的可能是驱动能力 下面是在IO极限频率 18MHz 下 三种模式的波形
  • bootstrap实现轮播图

    div class carousel slide style width 400px margin 30px auto ol class carousel indicators li class active li li li ol div
  • 数据库类型区分

    数据库类型主要可分为 网状数据库 Network Database 关系数据库 Relational Database 树状数据库 Hierarchical Database 面向对象数据库 Object oriented Database
  • qemu 对 ARMv8的支持

    qemu 可以支持 ARMv8 且支持的 boot 包括 1 从 ATF启动 2 从 UEFI启动 3 从 u boot启动 4 从 linux 启动 这里打算用以下平台 qemu system aarch64 M virt cpu qem
  • buckboost变换器简介

    1 buckboost拓扑 Vo Vin D 1 D 极性相反 可以升压也可以降压
  • latex 大于小于大于等于小于等于

    转载于https www cnblogs com kjkj p 10505832 html 发现大部分人只回答大于等于号 小于等于号的写法 而没有说大于 小于号的分别写法 大于号 textgreater 小于号 textless 下面的后面
  • android 动画开发

    动画的分类 Android通过Animations为android UI提供了一系列的动画效果 可以进行旋转 缩放 淡入淡出等 这些效果可以应用在绝大多数的空间中 Android中的动画一般为两类 1 Frame by frame Anim
  • 笔试题(十二):走梅花桩

    Redraiment是走梅花桩的高手 Redraiment可以选择任意一个起点 从前到后 但只能从低处往高处的桩子走 他希望走的步数最多 你能替Redraiment研究他最多走的步数吗 数据范围 每组数据长度满足 1 n 200 数据大小满
  • 利用Charles打断点修改返回数据

    1 选择你需要修改数据的接口 2 选中后 proxy gt breakPoint Setting 在出来的弹窗中找到你标记的接口 双击 选择对应的方法 get post 然后将Query里面的删掉 写上 确保一下request和respon
  • python学习之基于Python的人脸识别技术学习

    摘要 面部识别技术的应用越来越广泛 它广泛应用于安全系统 人机交互 社交媒体 医疗保健等领域 本文介绍了基于Python的人脸识别技术 包括人脸检测 人脸特征提取和人脸识别三个部分 我们使用OpenCV和Dlib库来实现这些功能 并使用Py
  • Python实现最小顶点覆盖算法

    Python实现最小顶点覆盖算法 最小顶点覆盖问题是图论中的重要问题 其目标是找到至少数量的顶点 使得每一条边至少有一个端点被这些顶点所覆盖 该问题在实际中有诸多应用 例如网络流分析和计算机视觉等领域 本文将介绍如何使用Python实现最小
  • 10.Docker(一)-----安装、初步使用、镜像、Dockerfile常用指令、通过Dockerfile文件封装nginx镜像并优化

    安装 初步使用 镜像 Dockerfile常用指令 通过Dockerfile文件封装nginx镜像并优化 一 简介 二 安装 1 安装配置 仓库配有的安装包 安装 桥接 2 导入马里奥游戏 浏览器访问172 25 15 1 3 删除 4 导
  • 删除链表中重复的元素

    题目描述 给定一个排序链表 删除所有含有重复数字的节点 只保留原始链表中 没有重复出现 的数字 样例 输入 1 gt 2 gt 3 gt 3 gt 4 gt 4 gt 5 输出 1 gt 2 gt 5 分析 从头结点开始遍历该链表 如果当前