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

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

原题链接

难度:easy\color{Green}{easy}easy

题目描述

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

示例 1:

输入:head = [1,1,2]
输出:[1,2]
复制示例输入

示例 2:

输入:head = [1,1,2,3,3]
输出:[1,2,3]
复制示例输入

提示:

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

算法

(线性扫描) O(n)O(n)O(n)

从前往后扫描整个链表,如果一个节点和其后继节点相同,则直接删除后继节点,否则指针移动到后继节点。

时间复杂度

整个链表只扫描一遍,所以时间复杂度是 O(n)O(n)O(n)

C++ 代码

/*** 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;ListNode* p = head;while (p->next) {if (p->val == p->next->val) p->next = p->next->next;else p = p->next;}return head;}
};
http://www.lryc.cn/news/7700.html

相关文章:

  • RMI简易实现(基于maven)
  • ‘excludeSwitches‘ 的 [‘enable-logging‘] 和[‘enable-automation‘]
  • 华为OD机试 - 最短木板长度(Python)| 真题+思路+考点+代码+岗位
  • 第一个Python程序-HelloWorld与Python解释器
  • C++数据类型
  • 华为OD机试 - 考古学家(Python)| 真题+思路+考点+代码+岗位
  • 常用调试golang的bug以及性能问题的实践方法
  • 什么是溶血症?什么是ABO溶血?溶血检查些什么?
  • NLP实践——知识图谱问答模型FiD
  • MyBatis 多表关联查询
  • 《NFL橄榄球》:克利夫兰布朗·橄榄1号位
  • InstructGPT笔记
  • 【uniapp】getOpenerEventChannel().once 接收参数无效的解决方案
  • ELK分布式日志收集快速入门-(二)kafka进阶-快速安装可视化管理界面-(单节点部署)
  • 线程的创建
  • 分布式之Paxos共识算法分析
  • 35岁测试工程师,面临中年危机,我该如何自救...
  • 时间轮算法概念
  • [SCTF2019]babyre 题解
  • 全志H3系统移植 | 移植主线最新uboot 2023.04和kernel 6.1.11到Nanopi NEO开发板
  • vue项目第四天
  • 「C语言进阶」数据内存的存储
  • 面试必问:进程和线程的区别(从操作系统层次理解)
  • ModuleNotFoundError: No module named ‘apex‘与 error: legacy-install-failure
  • Python3 VScode 配置
  • VMware 修复了三个身份认证绕过漏洞
  • 实现一个简单的Database10(译文)
  • CTF-取证题目解析-提供环境
  • 计算机基础 | 网络篇 | TCP/IP 四层模型
  • 实时数据仓库