力扣-83. 删除排序链表中的重复元素

news/2024/10/15 4:21:52

1.题目

题目地址(83. 删除排序链表中的重复元素 - 力扣(LeetCode))

https://leetcode.cn/problems/remove-duplicates-from-sorted-list/

题目描述

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。

 

示例 1:

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

示例 2:

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

 

提示:

  • 链表中节点数目在范围 [0, 300]
  • -100 <= Node.val <= 100
  • 题目数据保证链表已经按升序 排列

2.题解

2.1 一次遍历

思路

这里遍历链表,遇到重复的就删除重复的后一个节点,且当前节点cur不移动(防止接着的一个节点又等于cur->val)
否则我们向后移动cur,继续遍历。

代码

  • 语言支持:C++

C++ Code:

* 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 == nullptr) return head;ListNode *cur = head, *nt = head->next;while(cur->next != nullptr){if(cur->val == cur->next->val){ListNode *temp = cur->next;cur->next = temp->next;delete temp;}else{cur = cur->next;}         }return head;} 
};

复杂度分析

令 n 为数组长度。

  • 时间复杂度:\(O(n)\)
  • 空间复杂度:\(O(n)\)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

SAP 事务代码CU71报错 - 特性LOBM_LWEDT不存在 -

SAP 事务代码CU71报错 - 特性LOBM_LWEDT不存在 -1, 在事务代码CU71或者如下配置里。定义排序规则,试图使用SAP标准特性LOBM_LWEDT, SAP报错说:’特性LOBM_LWEDT不存在’。这是SAP系统上的一个标准的特性,怎么能不存在SAP系统上呢?2,解决方法:执行事务代码BMSM或者进入如下…

SAP S4HANA 2023 PCE系统上的SCC1?

SAP S4HANA 2023 PCE系统上的SCC1?在S/4 HANA 2023 PCE 系统上执行事务代码SCC1, 系统提示:”传输工具的旧副本已弃用,新的传输复制工具可用,是否继续执行新事务代码SCC1N?”. 点击按钮’是’, 系统进入如下界面:输入TR号码,输入源客户端,执行,进入如下结果界面,注:…

day29-JavaScript(1)

1、JavaScript 的历史 1.1、JavaScript 的历史 JavaScript 因为互联网而生,紧随着浏览器的出现而问世。回顾它的历史,就要从浏览器的历史讲起。 1990年底,欧洲核能研究组织(CERN)科学家Tim Berners-Lee,在全世界最大的电脑网络——互联网的基础上,发明了万维网(World W…

M3位带地址映射和汇编实现对比

01. 位带概述位带操作简单的说,就是把每个比特膨胀为一个 32 位的字,当访问这些字的时候就达到了访问比特的目的,比如说 GPIO 的 ODR 寄存器有 32 个位,那么可以映射到 32 个地址上,我们去访问这 32 个地址就达到访问 32 个比特的目的。这样我们往某个地址写 1 就达到往对…

Spring配置相关

SpringSpring技术是JavaEE开发必备技能,企业开发技术选型命中率>90% 专业角度简化开发:降低企业级开发的复杂性 框架整合:高效整合其他技术,提高企业级应用开发与运行效率初识Spring 了解Spring家族Spring官网:https://spring.io/ Spring发展到今天已经形成了一种开发的…

M3位带地址映射

01. 位带概述位带操作简单的说,就是把每个比特膨胀为一个 32 位的字,当访问这些字的时候就达到了访问比特的目的,比如说 GPIO 的 ODR 寄存器有 32 个位,那么可以映射到 32 个地址上,我们去访问这 32 个地址就达到访问 32 个比特的目的。这样我们往某个地址写 1 就达到往对…

aardio封装库) 微软开源的js引擎(ChakraCore)

前言 做爬虫肯定少不了JavaScript引擎的使用,比如在Python中现在一般用pyexecjs2来执行JavaScript代码,另外还有一些其他执行JavaScript的库:https://github.com/eight04/node_vm2: rpc调用nodejs,需要安装node https://github.com/eight04/deno_vm: rpc调用deno,需要安装…

shell编程

!/bin/bash set -u -e 安全 export 环境变量 cat /porc/$PID/export 位置变量 $0: 表示脚本或命令本身的名称。 $1, $2, $3, ...: 表示第一个、第二个、第三个等参数的值。 $* 或 $@: 表示所有位置参数的列表。 $#: 表示传递给脚本或命令的位置参数的个数。 echo $[12^4] =8 …