【C++】每日一题 82 删除排序链表中的重复元素

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

class ListNode {
public:int val;ListNode* next;ListNode(int _val) {val = _val;next = nullptr;}
};ListNode* deleteDuplicates(ListNode* head) {if (head == nullptr || head->next == nullptr) {return head;}ListNode dummy(0);dummy.next = head;ListNode* pre = &dummy;ListNode* cur = head;while (cur != nullptr) {bool duplicated = false;while (cur->next != nullptr && cur->val == cur->next->val) {duplicated = true;ListNode* temp = cur;cur = cur->next;delete temp;}if (duplicated) {pre->next = cur->next;delete cur;cur = pre->next;} else {pre = cur;cur = cur->next;}}return dummy.next;
}

通过使用双指针 pre 和 cur 遍历链表,同时使用一个布尔变量 duplicated 来标记当前节点是否为重复节点。在遍历过程中,如果发现当前节点与下一个节点值相同,则将 duplicated 设置为 true,直到找到不同值的节点或遍历结束。接着根据 duplicated 的值来删除重复节点或保留不同节点,并更新指针位置,直至遍历完成。最终返回处理后的链表头节点

具体的删除步骤如下:

初始化双指针 pre 和 cur,并将 pre 指针指向一个虚拟头节点。
将 cur 指针指向 head,开始遍历链表。
在遍历过程中,发现 cur->val 与 cur->next->val 相同,即 3 == 3,则将 duplicated 设置为 true,并删除重复节点 3 和 3。
更新指针位置,将 pre->next 指向下一个不重复的节点 4,并删除重复节点 4。
继续遍历,发现 cur->val 与 cur->next->val 不相同,即 4 != 5,则保留节点 5。
完成遍历后,返回处理后的链表头部,即 [1,2,5]。

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

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

相关文章

Python面向对象构造函数:手把手教你如何玩转对象初始化

我们都知道,Python是一个面向对象的语言,这意味着我们可以用类来定义对象的属性和方法。而构造函数,就是当我们创建一个新的对象时,会自动调用的特殊方法。那么,如何玩转这个构造函数呢? 首先,…

第七十八周周报

学习目标: 一、实验 学习时间: 2024.3.9-2024.3.15 学习产出: 实验 目前stylegna2、diffusion-stylegan2、U-ViT的实验以及ViTGAN cifar10的定性试验已经完成,还剩CelebA64的定性实验,以及DiT的实验。DiT模型改完…

蓝桥集训之大臣的旅费

蓝桥集训之大臣的旅费 核心思想&#xff1a;dfs求树的直径 从原点开始 找距离其最远的点 然后再找一次最远点 之间距离为直径2次dfs即可求出最长距离 #include<bits/stdc.h>using namespace std;const int N 1e610; int n ;int cnt[N] , e[N] , ne[N] , h[N] , idx ;i…

[Java、Android面试]_04_进程、线程、协程

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可收藏 文…

JAVA基础—JVM内存结构基础需知

1.JVM内存结构 JVM内存结构分为5个区域&#xff1a;方法区&#xff0c;虚拟机栈&#xff0c;本地方法栈、堆、程序计数器。 1.方法区&#xff08;Method Area&#xff09;&#xff1a;用于存储类的结构信息、常量、静态变量、即使编译器编译后的代码等数据。方法区也是所有线…

【数据库】Oracle内存结构与参数调优

Oracle内存结构与参数调优 Oracle 内存结构概览oracle参数配置概览重要参数&#xff08;系统运行前配置&#xff09;:次要参数&#xff08;可在系统运行后再优化调整&#xff09;: Oracle数据库服务器参数如何调整OLTP内存分配操作系统核心参数配置Disabling ASMM&#xff08;禁…

React18 后台管理模板项目:现代、高效与灵活

&#x1f389; 给大家推荐一款React18TypescriptVitezustandAntdunocss且超级好用的中后台管理框架 项目地址 码云&#xff1a;https://gitee.com/nideweixiaonuannuande/xt-admin-react18github&#xff1a;https://github.com/1245488569/xt-admin-react18 演示地址 http…

2024年【安全员-A证】复审考试及安全员-A证模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-A证复审考试参考答案及安全员-A证考试试题解析是安全生产模拟考试一点通题库老师及安全员-A证操作证已考过的学员汇总&#xff0c;相对有效帮助安全员-A证模拟试题学员顺利通过考试。 1、【多选题】《安全生产…

24计算机考研调剂 | 太原科技大学

2024年太原科技大学 力学专业 接收研究生调剂通告 考研调剂招生信息 招生专业&#xff1a; 080100&#xff08;力学&#xff09; 01先进材料变形行为及力学性能 02 计算力学及其应用 03结构动力学与无损检测 04复合材料断裂理论与结构设计 补充内容 调剂考生基本要求 &…

男生穿什么裤子最帅?目前最流行的男裤子款式分享

现在不少男生朋友都觉得裤子特别难选&#xff0c;尤其是市面上经常会有一些面料劣质、版型不正确的款式&#xff0c;导致大家选衣服就尤其容易踩雷。所以今天就来和大家分享一下哪些口碑较好的男装品牌值得推荐&#xff01; 男装裤子怎么选&#xff1f;市面上的品牌多得数不胜数…

layuiAdmin-通用型后台模板框架【广泛用于各类管理平台】

1. 主页 1.1 控制台 2. 组件 3. 页面 3.1 个人主页 3.2 通讯录 3.3 客户列表 3.4 商品列表 3.5 留言板 3.6 搜索结果 3.7 注册 3.8 登入 3.9 忘记密码 4. 应用 4.1 内容系统 4.1.1 文章列表 4.1.2 分类管理 4.1.3 评论管理 4.2 社区系统 4.2.1 帖子列表 4.2.2 回…

简单了解跨域问题如何解决

跨域问题是怎么产生的&#xff1f; 跨域就是违反了浏览器规定的一个同源策略&#xff0c;同源策略是为了保证不同页面之间不能用到对方的一下信息&#xff08;如cookie&#xff0c;DOM对象&#xff09;保证安全&#xff0c;同源策略主要是三个方面相同&#xff0c;用一个URL来…

2024年【危险化学品经营单位安全管理人员】考试及危险化学品经营单位安全管理人员考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员考试根据新危险化学品经营单位安全管理人员考试大纲要求&#xff0c;安全生产模拟考试一点通将危险化学品经营单位安全管理人员模拟考试试题进行汇编&#xff0c;组成一套危险化学品经…

第二百零四回

文章目录 1 .概念介绍2. 使用方法3. 示例代码 我们在上一章回中介绍了自定义缓冲组件相关的内容&#xff0c;本章回中将介绍一个和它类似的组件&#xff1a;下拉刷新组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 .概念介绍 我们在本章回介绍的下拉刷新组件叫Refres…

Java基础-复制

复制 前言引用拷贝浅拷贝深拷贝重写clone()方法序列化 前言 在编码中,我们可能会遇到需要将对象的属性复制到另一个对象中,这种情况叫做拷贝. 拷贝与Java内存结构有密切关系,拷贝有三种情况,引用拷贝,深拷贝和浅拷贝,下面来了解一下. 引用拷贝 引用拷贝会生成一个新的对象引…

15届蓝桥杯第二期模拟赛题单详细解析

文章目录 &#x1f9e1;&#x1f9e1;t1_求余&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t2_灌水&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t3_字符显示&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t4_区间最大和…

携手共进办公网络安全

一、引言 在数字化时代的今天&#xff0c;办公网络安全问题已日益成为企业发展的重要课题。随着信息技术的快速发展&#xff0c;网络安全威胁也呈现出多样化、复杂化的趋势。这些危害可能源于网络本身的漏洞、人为因素或外部威胁&#xff0c;给企业的信息安全和正常运营带来严…

c++ 模板template

作用&#xff1a;通过template定义函数、类可以扩展对不同数据类型通用性。 如下函数就只能接收int类型数据输入&#xff0c;并返回int类型&#xff0c;想处理string类型或者其他类型只能重新定义一个函数。 //不使用模板相加函数&#xff0c;只能对int输入有效返回int int m…

一分钟搞定-爬虫基本原理介绍、实现以及问题解决(干货满满)

嗨&#xff0c;亲爱的初学者们&#xff01;今天我们要聊一聊一个有趣的话题——爬虫。如果你对网页抓取、数据挖掘或者网络爬虫感兴趣&#xff0c;那么这篇文章就是为你准备的。我们将一起探索爬虫的基本原理、实现方法以及可能遇到的问题和解决策略。准备好了吗&#xff1f;让…

【Python】什么是wsgi,uwsgi,uWSGI?

WSGI WSGI(Web Server Gatway Interface)是一个python标准库&#xff0c;定义了web服务器和Python应用之间的接口。这个标准允许Web服务器&#xff08;Apache或者nginx&#xff09;将请求转发给Python应用&#xff08;如Django或者Flask&#xff09;然后将应用的响应返回给客户…