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

[E链表] lc83. 删除排序链表中的重复元素(单链表+模拟)

文章目录

    • 1. 题目来源
    • 2. 题目解析

1. 题目来源

链接:83. 删除排序链表中的重复元素

2. 题目解析

挺不错的一道链表题目,链表题目多画图,就比较清楚明了了。关键点列出:

  • 本题至少有一个节点存在,且头结点必然存在,且不会改变,所以不需要使用虚拟头结点。
  • 我们只需要知道无重复元素的链表的尾结点在哪里就行,需要用这个节点的 next 指向新的节点,将中间的重复元素进行删掉。
  • 注意,最后我们需要将无重复元素的链表尾结点的 next 置为 NULL,因为可能会存在 1->1->2->3->3,最后的这个这个节点实际上是第一个 3 这个节点,该节点后续没有与他不同的元素了,需要将他的 Next 置为 NULL,否则还是会链上 后面的这个 3 节点。

  • 时间复杂度 O ( n ) O(n) O(n)
  • 空间复杂度 O ( 1 ) O(1) O(1)

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* deleteDuplicates(ListNode* head) {if (!head) return head;auto cur = head;for (auto p = cur; p; p = p->next) {if (p && cur->val != p->val)	// 最终 p 和 cur 一定停在 val 不相等的位置cur = cur->next = p;			// 这个时候直接将 cur 的 next 指向 p 即可,此时既保留了 cur,且将 cur 和 p 之间的重复元素删掉,并且更新 cur 的位置}cur->next = NULL;  // 最后需要将 cur 的 next位置置为 NULL,代表后续没有元素了,极端反例:1->1->1->1->1return head;}
};

相关文章:

  • 竞赛保研 基于深度学的图像修复 图像补全
  • 【Python_PySide6学习笔记(三十一)】基于PySide6实现自定义串口设备连接界面类:可实现串口连接断开、定时发送等功能
  • 入门Docker1: 容器技术的基础
  • 1 快速前端开发
  • 一致性协议浅析
  • 【wow-ts】前端学习笔记Typescript基础语法(一)
  • 显示CPU架构的有关信息 lscpu
  • 数学建模 | 运筹学的 LINGO 软件(附 LINGO代码)
  • 【固态钽表面贴装电容】 MIL-PRF-55365 美军标
  • Windows 系统彻底卸载 SQL Server 通用方法
  • MySQL的安装
  • 利用人工智能和机器人技术实现复杂的自动化任务!
  • 前端使用scale属性结合CSS动态样式实现动态的图片缩放效果
  • 虚幻UE 特效-Niagara特效实战-烟雾、喷泉
  • go-carbon v2.3.4 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库
  • ES6指北【2】—— 箭头函数
  • 【翻译】babel对TC39装饰器草案的实现
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • echarts的各种常用效果展示
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • markdown编辑器简评
  • mysql常用命令汇总
  • Objective-C 中关联引用的概念
  • php ci框架整合银盛支付
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 百度地图API标注+时间轴组件
  • 近期前端发展计划
  • 什么软件可以剪辑音乐?
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 微服务框架lagom
  • 详解NodeJs流之一
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 智能网联汽车信息安全
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​人工智能书单(数学基础篇)
  • (1)虚拟机的安装与使用,linux系统安装
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (9)STL算法之逆转旋转
  • (C语言)共用体union的用法举例
  • (C语言)逆序输出字符串
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转) Face-Resources
  • (转)为C# Windows服务添加安装程序
  • .gitignore文件_Git:.gitignore
  • .net core Swagger 过滤部分Api
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net core 连接数据库,通过数据库生成Modell
  • .NET 设计模式初探
  • .NET多线程执行函数
  • [1204 寻找子串位置] 解题报告
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——