Leetcode 面试题 02.01. 移除重复节点

embedded/2024/10/22 18:34:20/

题目描述

编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。

示例1:

 输入:[1, 2, 3, 3, 2, 1]
 输出:[1, 2, 3]

示例2:

 输入:[1, 1, 1, 1, 2]
 输出:[1, 2]

提示:

  1. 链表长度在[0, 20000]范围内。
  2. 链表元素在[0, 20000]范围内。

 双指针方法,定义两个指针cur与p来逐个遍历链表,cur元素依次和p比较,直到p为NULL,cur向后移动一个。

完整代码:

class Solution {
public:ListNode* removeDuplicateNodes(ListNode* head) {// 如果链表为空,直接返回 NULLif (head == NULL) {return NULL;}// 当前遍历到的节点ListNode *cur = head;// 遍历链表,直到当前节点的下一个节点为空while (cur != NULL && cur->next != NULL) {// 内部遍历指针,从当前节点开始检查重复ListNode *p = cur;// 检查下一个节点是否与当前节点的值相同while (p->next != NULL) {if (p->next->val == cur->val) {// 如果下一个节点的值与当前节点相同,删除下一个节点ListNode *tmp = p->next;p->next = p->next->next;delete tmp; // 删除节点释放内存} else {// 如果下一个节点的值不同,则移动指针到下一个节点p = p->next;}}// 移动当前指针到下一个节点cur = cur->next;}// 返回去重后的链表头节点return head;}
};


http://www.ppmy.cn/embedded/42783.html

相关文章

恶劣天候激光雷达点云模拟方法论文整理

恶劣天候点云模拟方法论文整理 模拟雨天点云:【AAAI2024】模拟雪天点云:【CVPR 2022 oral】模拟雾天点云:【ICCV2021】模拟点云恶劣天候的散射现象:【Arxiv 2021】模拟积水地面的水花飞溅点云:【RAL2022】 模拟雨天点云…

【LeetCode:2769. 找出最大的可达成数字 + 模拟】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

如何优雅的卸载linux上的todesk

要优雅地卸载Linux上的ToDesk,您可以按照以下步骤操作: 打开终端。 输入以下命令来停止ToDesk服务(如果它正在运行的话): sudo systemctl stop todesk 然后,使用包管理器卸载ToDesk。如果您使用的是apt&…

【Python爬虫篇】Selenium在获取网页数据方面的使用及采集中国大学课程评论数据

1 selenium概述 1.什么是selenium? (1)Selenium是一个用于Web应用程序测试的工具。 (2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。 (3)支持通过各种driver&#…

【C++高阶(一)】继承

目录 一、继承的概念 1.继承的基本概念 2.继承的定义和语法 3.继承基类成员访问方式的变化 ​编辑 4.总结 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 1.派生类中的默认构造函数 2.派生类中的拷贝构造函数 3.派生类中的移动构造函数…

[SCTF2019]babyre

打开看看还是有花指令 解除后首先pass1是解maze,好像又是三维的 x是25,也就是向下跳五层,注意是立体的 得到 passwd1: ddwwxxssxaxwwaasasyywwdd 接着往下看 有一个加密函数IDA逆向常用宏定义_lodword-CSDN博客 unsigned __int64 __fastca…

如何彻底搞懂装饰器(Decorator)设计模式?

对于任何一个软件系统而言,往现有对象中添加新功能是一种不可避免的实现场景,但这一实现过程对现有系统的影响可大可小。从架构设计上讲,我们也知道存在一个开闭原则(Open-Closed Principle,OCP)&#xff0…

Ubuntu安装IPOPT和Casadi

1.IPOPT安装 1.1安装所需功能包 sudo apt-get install cppad sudo apt-get install gcc g gfortran subversion patch wget1.2下载最新源代码3.14 https://www.coin-or.org/download/source/Ipopt/1.3解压进入IPOPT安装包,下载ASL git clone https://github.com/…