首页 > 编程语言 >编程题-删除排序链表中的重复元素

编程题-删除排序链表中的重复元素

时间:2025-01-03 13:30:59浏览次数:3  
标签:current head 元素 ListNode 编程 next 链表 排序

题目:

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

解题

由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。本题较为简单,笔者不做过多解释,代码如下:

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        ListNode* current = head;
        if(current==nullptr){
            return head;
        }
        while(current->next!=nullptr){
            int a = current->val;
            int b = current->next->val;
            if(a==b){
                current->next = current->next->next;
            }
            else{
                current = current->next;
            }
        }
        return head;
    }
};

特别注意:在进行链表操作时,一定要对ListNode是否为空以及ListNode->next是否为空进行条件判断,以防报错。

标签:current,head,元素,ListNode,编程,next,链表,排序
From: https://blog.csdn.net/qq_43287713/article/details/144908214

相关文章

  • CUDA编程【5】获取GPU设备信息
    文章目录通过cudaAPI获取1.获取设备数量2.获取当前设备ID3.设置当前设备4.获取设备属性5.获取设备限制6.获取设备共享内存配置7.获取设备缓存配置8.获取设备是否支持统一内存9.获取设备是否支持并发内核执行10.获取设备的最大线程块数11.获取设备的时钟频率......
  • 断点&输出大法快速定位编程错误
    断点&输出大法快速定位编程错误1、断点法点红框位置就可以加每行代码的断点再按F5进行debug操作,在下面的窗口看各函数的值这种方法经常用在循环出现问题时进行处理举个栗子比方说现在输出的结果非常烫,但是由于代码复杂程度较高,不好分析#include<iostream>usingnamespac......
  • 快速排序算法的 Java 实现与性能调优
    目录一、快速排序的基本原理二、快速排序的Java实现三、时间复杂度与空间复杂度四、总结引言排序是计算机科学中的基础问题之一,无论是在数据库查询、数据分析,还是在日常编程中,排序算法的选择都对性能有着重要的影响。快速排序(QuickSort)是最广泛使用的排序算法之一,......
  • 面向对象编程(OOP)
    在计算机编程的广阔领域中,面向对象编程(Object-OrientedProgramming,简称OOP)占据着举足轻重的地位,它为软件开发提供了一种高效、灵活且易于维护的编程范式,深刻地影响着现代软件的设计与开发方式。从桌面应用程序到大型企业级系统,从移动应用到网页开发,OOP的理念和技术随处可见,......
  • AI 自动化编程对编程教育的影响
    AI自动化编程的未来引言你是否曾想过,未来的程序员需要掌握哪些技能呢?随着人工智能的迅猛发展,特别是生成式AI工具的普及,编程的世界正在发生翻天覆地的变化。编程教育也在这种环境下进行着深刻的转型。那么,AI自动化编程究竟会如何影响编程教育呢?在这篇文章中,我们将一起探......
  • 在Lazarus下的Free Pascal编程教程——以数据需求拉动程序运行的模块化程序设计方法
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”和“2.已......
  • 在Lazarus下的Free Pascal编程教程——按数据流程规划程序结构
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”和“2.已经......
  • 【初阶数据结构与算法】排序算法总结篇(每个小节后面有源码)(直接插入、希尔、选择、堆
    文章目录一、直接插入排序二、希尔排序三、直接选择排序四、堆排序五、冒泡排序六、快速排序七、归并排序八、计数排序九、非递归快速排序十、非递归归并排序本篇内容将从稳定性与复杂度等角度分析排序算法,列出它们的特点、优点以及缺点,希望大家有所收获,如果想更加细......
  • 一文带你入门仓颉编程语言(上)
    目录一、引言:仓颉编程的崛起二、编程环境搭建全攻略三、基础语法精析(一)变量与数据类型(二)表达式与流程控制四、函数:代码复用的利器(一)普通函数(二)Lambda表达式  一、引言:仓颉编程的崛起2024年6月21日下午,华为终端BG软件部总裁龚体先生在华为开发者大会主题演讲《......
  • 仓颉编程语言:编程世界的 “文化瑰宝”
    我的个人主页在当今编程领域百花齐放的时代,各种编程语言争奇斗艳,服务于不同的应用场景和开发者群体。然而,有这样一种编程语言,它承载着独特的文化内涵,宛如编程世界里一颗熠熠生辉的“文化瑰宝”,那就是仓颉编程语言。一、仓颉编程语言的渊源仓颉,本是传说中创造汉字的......