当前位置: 首页 > news >正文

力扣之有序链表去重

删除链表中的重复元素,重复元素保留一个

p1   p2
1 -> 1 -> 2 -> 3 -> 3 -> null

p1.val == p2.val 那么删除 p2,注意 p1 此时保持不变

p1   p2
1 -> 2 -> 3 -> 3 -> null

p1.val != p2.val 那么 p1,p2 向后移动

       p1   p2
1 -> 2 -> 3 -> 3 -> null
         
              p1   p2
1 -> 2 -> 3 -> 3 -> null   

p1.val == p2.val 那么删除 p2

              p1   p2
1 -> 2 -> 3 -> null 

当 p2 == null 退出循环

 代码

public ListNode deleteDuplicates(ListNode head) {// 链表节点 < 2if (head == null || head.next == null) {return head;}// 链表节点 >= 2ListNode p1 = head;ListNode p2;while ((p2 = p1.next) != null) {if (p1.val == p2.val) {p1.next = p2.next;} else {p1 = p1.next;}}return head;
}

重复元素一个也不保留

p1 是待删除的上一个节点,每次循环对比 p2、p3 的值

  • 如果 p2 与 p3 的值重复,那么 p3 继续后移,直到找到与 p2 不重复的节点,p1 指向 p3 完成删除

  • 如果 p2 与 p3 的值不重复,p1,p2,p3 向后平移一位,继续上面的操作

  • p2 或 p3 为 null 退出循环

    • p2 为 null 的情况,比如链表为 1 1 1 null

 

p1 p2 p3
s,  1,   1, 1, 2, 3, null

p1 p2    p3
s,   1,    1, 1, 2, 3, null

p1 p2        p3
s,   1, 1, 1, 2, 3, null

p1 p3
s,   2, 3, null

p1 p2 p3
s,   2,  3, null

   p1 p2 p3
s, 2, 3, null

代码 

public ListNode deleteDuplicates(ListNode head) {if (head == null || head.next == null) {return head;}ListNode s = new ListNode(-1, head);ListNode p1 = s;ListNode p2;ListNode p3;while ((p2 = p1.next) != null && (p3 = p2.next) != null) {if (p2.val == p3.val) {while ((p3 = p3.next) != null && p3.val == p2.val) {}p1.next = p3;} else {p1 = p1.next;}}return s.next;
}

相关文章:

力扣之有序链表去重

删除链表中的重复元素&#xff0c;重复元素保留一个 p1 p2 1 -> 1 -> 2 -> 3 -> 3 -> null p1.val p2.val 那么删除 p2&#xff0c;注意 p1 此时保持不变 p1 p2 1 -> 2 -> 3 -> 3 -> null p1.val ! p2.val 那么 p1&#xff0c;p2 向后移动 p1 …...

Apache配置与应用(优化apache)

Apache配置解析&#xff08;配置优化&#xff09; Apache链接保持 KeepAlive&#xff1a;决定是否打开连接保持功能&#xff0c;后面接 OFF 表示关闭&#xff0c;接 ON 表示打开 KeepAliveTimeout&#xff1a;表示一次连接多次请求之间的最大间隔时间&#xff0c;即两次请求之间…...

怎么将3张照片合并成一张?这几种拼接方法很实用!

怎么将3张照片合并成一张&#xff1f;在我们丰富多彩的日常生活里&#xff0c;是否总爱捕捉那些稍纵即逝的美好瞬间&#xff0c;将它们定格为一张张珍贵的图片&#xff1f;然而&#xff0c;随着时间的推移&#xff0c;这些满载回忆的宝藏却可能逐渐演变成一项管理挑战&#xff…...

YOLOv10改进 | 图像去雾 | MB-TaylorFormer改善YOLOv10高分辨率和图像去雾检测(ICCV,全网独家首发)

一、本文介绍 本文给大家带来的改进机制是图像去雾MB-TaylorFormer&#xff0c;其发布于2023年的国际计算机视觉会议&#xff08;ICCV&#xff09;上&#xff0c;可以算是一遍比较权威的图像去雾网络&#xff0c; MB-TaylorFormer是一种为图像去雾设计的多分支高效Transformer…...

spring boot读取yml配置注意点记录

问题1&#xff1a;yml中配置的值加载到代码后值变了。 现场yml配置如下&#xff1a; type-maps:infos:data_register: 0ns_xzdy: 010000ns_zldy: 020000ns_yl: 030000ns_jzjz: 040000ns_ggglyggfwjz: 050000ns_syffyjz: 060000ns_gyjz: 070000ns_ccywljz: 080000ns_qtjz: 090…...

电子电气架构 --- 关于DoIP的一些闲思 下

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

Java getSuperclass和getGenericSuperclass

1.官方API对这两个方法的介绍 getSuperclass : 返回表示此 Class 所表示的实体&#xff08;类、接口、基本类型或 void&#xff09;的超类的 Class。如果此 Class 表示 Object 类、一个接口、一个基本类型或 void&#xff0c;则返回 null。如果此对象表示一个数组类&#xff…...

ARM功耗管理标准接口之ACPI

安全之安全(security)博客目录导读 思考&#xff1a;功耗管理有哪些标准接口&#xff1f;ACPI&PSCI&SCMI&#xff1f; Advanced Configuration and Power Interface Power State Coordination Interface System Control and Management Interface ACPI可以被理解为一…...

2024年网络监控软件排名|10大网络监控软件是哪些

网络安全&#xff0c;小到关系到企业的生死存亡&#xff0c;大到关系到国家的生死存亡。 因此网络安全刻不容缓&#xff0c;在这里推荐网络监控软件。 2024年这10款软件火爆监控市场。 1.安企神软件&#xff1a; 7天免费试用https://work.weixin.qq.com/ca/cawcde06a33907e6…...

通过Arcgis从逐月平均气温数据中提取并计算年平均气温

通过Arcgis快速将逐月平均气温数据生成年平均气温数据。本次用2020年逐月平均气温数据操作说明。 一、准备工作 &#xff08;1&#xff09;准备Arcmap桌面软件&#xff1b; &#xff08;2&#xff09;准备2020年逐月平均气温数据&#xff08;NC格式&#xff09;、范围图层数据&…...

每日一题~abc356(对于一串连续数字 找规律,开数值桶算贡献)

添加链接描述 题意&#xff1a;对于给定的n,m 。计算0~n 每一个数和m & 之后&#xff0c;得到的数 的二进制中 1的个数的和。 一位一位的算。最多是60位。 我们只需要计算 在 1-n这些数上&#xff0c;有多少个数 第i位 为1. 因为是连续的自然数&#xff0c;每一位上1 的…...

商业合作方案撰写指南:让你的提案脱颖而出的秘诀

作为一名策划人&#xff0c;撰写一份商业合作方案需要细致的规划和清晰的表达。 它是一个综合性的过程&#xff0c;需要策划人具备市场洞察力、分析能力和创意思维。 以下是能够帮助你撰写一份有效的商业合作方案的关键步骤和要点&#xff1a; 明确合作目标&#xff1a;设定…...

【MySQL】锁(黑马课程)

【MySQL】锁 0. 锁的考察点1. 概述1. 锁的分类1.1 属性分类1.2 粒度分类 2. 全局锁2.1 全局锁操作2.2.1 备份问题 3. 表级锁3.1 表锁3.2 语法3.3 表共享读锁&#xff08;读锁&#xff09;3.4 表独占写锁&#xff08;写锁&#xff09;3.5 元数据锁(meta data lock, MDL)3.6 意向…...

1.10编程基础之简单排序--02:奇数单增序列

OpenJudge - 02:奇数单增序列http://noi.openjudge.cn/ch0110/02/ 描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。 输入 共2行: 第1行为 N; 第2行为 N 个正整数,其间用空格间隔。 输出 增序输出的奇数序列,数据之间以逗号间隔。数…...

【leetcode78-81贪心算法、技巧96-100】

贪心算法【78-81】 121.买卖股票的最佳时机 class Solution:def maxProfit(self, prices: List[int]) -> int:dp[[0,0] for _ in range(len(prices))] #dp[i][0]第i天持有股票&#xff0c;dp[i][1]第i天不持有股票dp[0][0] -prices[0]for i in range(1, len(prices)):dp[…...

IEC62056标准体系简介-4.IEC62056-53 COSEM应用层

为在通信介质中传输COSEM对象模型&#xff0c;IEC62056参照OSI参考模型&#xff0c;制定了简化的三层通信模型&#xff0c;包括应用层、数据链路层&#xff08;或中间协议层&#xff09;和物理层&#xff0c;如图6所示。COSEM应用层完成对COSEM对象的属性和方法的访问&#xff…...

嵌入式应用开发之代码整洁之道

前言&#xff1a;本系列教程旨在如何将自己的代码写的整洁&#xff0c;同时也希望小伙伴们懂如何把代码写脏&#xff0c;以备不时之需&#xff0c;同时本系列参考 正点原子 &#xff0c; C代码整洁之道&#xff0c;编写可读的代码艺术。 #好的代码的特点 好的代码应该都有着几…...

iwconfig iwpriv学习之路

iwconfig和iwpriv是两个常用的wifi调试工具&#xff0c;最近需要使用这两个工具完成某款wifi芯片的定频测试&#xff0c;俗话说好记性不如烂笔头&#xff0c;于是再此记录下iwconfig和iwpriv的使用方式。 -----再牛逼的梦想&#xff0c;也抵不住傻逼般的坚持&#xff01; ----2…...

【Docker-compose】搭建php 环境

文章目录 Docker-compose容器编排1. 是什么2. 能干嘛3. 去哪下4. Compose 核心概念5. 实战 &#xff1a;linux 配置dns 服务器&#xff0c;搭建lemp环境&#xff08;Nginx MySQL (MariaDB) PHP &#xff09;要求6. 配置dns解析配置 lemp Docker-compose容器编排 1. 是什么 …...

【记录】LaTex|LaTex 代码片段 Listings 添加带圆圈数字标号的箭头(又名 LaTex Tikz 库画箭头的简要介绍)

文章目录 前言注意事项1 Tikz 的调用方法&#xff1a;newcommand2 标号圆圈数字的添加方式&#xff1a;\large{\textcircled{\small{1}}}\normalsize3 快速掌握 Tikz 箭头写法&#xff1a;插入点相对位移标号node3.1 第一张图&#xff1a;插入点相对位移3.2 第二张图&#xff1…...

TranslucentTB深度解析:如何用5MB内存实现Windows任务栏的视觉革命

TranslucentTB深度解析&#xff1a;如何用5MB内存实现Windows任务栏的视觉革命 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 在Windows…...

首款支持AI渗透的WebShell管理工具,聊个天就能实现免杀|实现高隐蔽内网渗透

0x01 工具介绍 金刚狼首款支持 AI 渗透的 WebShell MCP&#xff0c;也是一款支持多层内网级联的 ASPX、ASHX 高级 WebShell 管理工具。工具采用 AES 加密通信&#xff0c;无需代理即可实现内网穿透&#xff0c;支持内存加载各类渗透工具&#xff0c;做到无文件落地隐蔽渗透目标…...

华为AR路由器VRRP配置实战:从单点故障到流量黑洞,一个实验全搞定

华为AR路由器VRRP高可用实战&#xff1a;规避单点故障与流量黑洞的深度解析 在现网架构中&#xff0c;网关设备的可靠性直接决定了整个网络的稳定性。想象一下这样的场景&#xff1a;当核心网关突然宕机&#xff0c;整个办公区的网络瞬间瘫痪&#xff0c;业务系统中断&#xff…...

Rock3A开发板实战:OpenBMC移植全记录(附避坑指南)

Rock3A开发板OpenBMC移植实战&#xff1a;从硬件适配到性能调优 当RK3568处理器遇上OpenBMC&#xff0c;会碰撞出怎样的火花&#xff1f;作为瑞芯微旗下性能与功耗平衡的明星芯片&#xff0c;RK3568在边缘计算领域已证明其价值。而将其应用于BMC&#xff08;基板管理控制器&…...

Pixelorama扩展深度解析:3种自动化精灵图切割方案对比

Pixelorama扩展深度解析&#xff1a;3种自动化精灵图切割方案对比 【免费下载链接】Pixelorama A free & open-source 2D sprite editor, made with the Godot Engine! Available on Windows, Linux, macOS and the Web! 项目地址: https://gitcode.com/gh_mirrors/pi/Pi…...

数据开发平台如何落地实操?数据开发平台核心价值是什么?

数据开发平台是企业数字化建设的核心载体&#xff0c;搭建合规高效的数据开发平台&#xff0c;才能打通数据流转全链路&#xff0c;而多数企业落地数据开发平台时&#xff0c;往往陷入流程混乱、效率低下的困境。开始之前给大家分享一份数字化全流程资料包:https://s.fanruan.c…...

3步掌握Open Props:从环境搭建到高级应用

3步掌握Open Props&#xff1a;从环境搭建到高级应用 【免费下载链接】open-props CSS custom properties to help accelerate adaptive and consistent design. 项目地址: https://gitcode.com/gh_mirrors/op/open-props Open Props是一个功能强大的CSS变量库&#xff…...

Maven阿里云镜像配置详解:提升依赖下载速度的终极方案

Maven阿里云镜像配置实战&#xff1a;突破国内依赖下载瓶颈的完整指南 每次打开IDE准备大干一场时&#xff0c;最扫兴的莫过于看着Maven依赖下载进度条像蜗牛一样缓慢爬行。作为Java开发者&#xff0c;我们都经历过中央仓库下载速度只有几十KB/s的煎熬时刻——特别是当团队新成…...

基于Vue的博物馆智能导览系统[vue]-计算机毕业设计源码+LW文档

摘要&#xff1a;本文介绍了一款基于Vue框架开发的博物馆智能导览系统。系统旨在利用现代Web技术提升参观者在博物馆中的体验&#xff0c;通过提供便捷的博物馆信息查询、个性化的导览路线规划等功能&#xff0c;满足不同用户的需求。本文详细阐述了系统的开发背景、相关技术、…...

OpenClaw安全指南:GLM-4.7-Flash本地化部署权限管理

OpenClaw安全指南&#xff1a;GLM-4.7-Flash本地化部署权限管理 1. 为什么需要关注OpenClaw的安全问题 去年我在尝试用OpenClaw自动整理电脑上的项目文档时&#xff0c;差点酿成一场小灾难。当时我让AI助手帮我"清理重复文件"&#xff0c;结果它把我整个开发环境的…...