删除链表中重复的结点

C语言--删除链表中重复的节点 删除链表中重复的节点 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 示例: 输入:1>2>3>3>4>4>5 输出:1>2>5 ListNode* deleteDuplication(ListNode* pHead) { if(pHead == NULL || pHea... 阅读详情

题目:

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。

分析:
常规方法删除

class Solution
{
public:
    ListNode* deleteDuplication( ListNode* pHead )
    {
        if ( pHead == NULL )
            return NULL;
        ListNode* pPreNode = NULL;
        ListNode* pNode = pHead;
        ListNode* pResult = pHead;
        while ( pNode != NULL )
        {
            ListNode* pNext = pNode->next;
            bool needDelete = false;

            if ( pNext != NULL && pNext->val == pNode->val )
                needDelete = true;

            if ( !needDelete )
            {
                pPreNode = pNode;
                pNode = pNode->next;
            }
            else
            {
                int value = pNode->val;
                ListNode* pToBeDel = pNode;
                while ( pToBeDel != NULL && pToBeDel->val == value )
                {
                    pNext = pToBeDel->next;

                    delete pToBeDel;
                    pToBeDel = NULL;

                    pToBeDel = pNext;
                }

                if ( pPreNode == NULL )
                    pResult = pNext;
                else
                    pPreNode->next = pNext;

                pNode = pNext;
            }
        }
        return pResult;
    }
};
【链表】C++删除链表中重复的结点 题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 注意要删除的是所有重复的,而不是删除多余的。开始理解成1-2-3-4-5,事实证明全部删除比删除多余复杂挺多。 我尝试了三种方法,牛客网上运行通过,思路如下: (1)遍历链表,重复的数字置0,如1-2 阅读详情

相关推荐

【Clickhouse从入门到精通】第60篇:ClickHouse生态总结与未来展望

ClickHouse系列收官总结 本文作为《ClickHouse从入门到精通》系列的第60篇收官之作,系统回顾了整个系列的知识体系。文章从基础概念到高级应用,全面梳理了ClickHouse的核心技术: 知识体系:完整回顾了60篇文章的知识图谱,包括列式存储原理、MergeTree引擎家族、分布式架构等核心内容 生态工具:详细盘点了ClickHouse的企业版工具、运维监控、数据集成和可视化方案 版本演进:分析了从21.x到24.x的主要版本特性升级 未来趋势:展望了向量化引擎、湖仓一体、AI集成等发展方向

xyghehehehe的专栏 442

链表-链表中删除重复的结点

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 分析: 题目分两个问题,一是元素值比较,找出值相同的元素;二是操作链表将后向值相同的元素删; 思路: 首先会想到最简单的(时间复杂高)使用双层循环对链表中进行...

小童的博客 426

E-Prime脑电实验打mark全攻略:从端口查询到串并口实战(附常见问题解决)

本文提供了E-Prime脑电实验打mark的完整实战指南,涵盖端口查询、并口与串口配置的核心步骤及常见问题解决。文章深入解析了mark原理,并详细介绍了通过E-Basic脚本和Serial设备对象发送信号的两种方法,帮助研究者实现E-Prime与脑电设备的高精度时间同步,确保实验数据可靠性。

4k5l6j7h8的博客 355

[编程题]删除链表中重复的结点 C语言

删除链表中重复的结点 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 示例1 输入 {1,2,3,3,4,4,5} 输出 {1,2,5} ...

juggte的博客 1990

别再只调A*算法了!聊聊ROS机器人导航中,OpenCV视觉信息如何与激光雷达数据“打配合”

本文探讨了ROS机器人导航中激光雷达与OpenCV视觉融合的实战策略,揭示了如何通过多模态感知提升导航精度。文章详细介绍了视觉特征到代价地图的转化方法、系统级挑战的工程解决方案,以及融合感知下的路径规划进化,帮助开发者优化机器人导航系统。

weixin_29278805的博客 226

从零到一:基于PX4+Gazebo+ROS2的无人机轨迹跟踪仿真环境全栈搭建

本文详细介绍了在Ubuntu 22.04系统上,从零开始搭建基于PX4、Gazebo Garden和ROS2 Humble的无人机轨迹跟踪仿真环境的完整流程。内容涵盖PX4 SITL编译、Gazebo安装、ROS2配置、Micro XRCE-DDS Agent通信桥接以及QGroundControl地面站部署,并提供了创建自定义ROS2节点实现圆形轨迹跟踪的实战代码与关键调试技巧,帮助开发者快速构建全栈仿真开发环境。

swift5iosmith的博客 919

leetcode[83]:删除排序链表中的重复元素 C语言解法

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例1: 输入: 1->1->2 输出: 1->2 示例2: 输入: 1->1->2->3->3 输出: 1->2->3 /** * Definition for singly-linked list. * struct ListNode { * ...

Deep_l_zh的博客 798

2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

小杨购物 【题目描述】 小杨有n元钱用于购物。商品A的单价是a元,商品B的单价是b元。 小杨想购买相同数量的商品A和商品B。 默认小猫角色和白色背景,编写程序请你帮小杨计算出他最多能够购买多少个商品A和商品B。 【输入描述】 新建变量“n”用于存储小杨购物的金额。 新建变量“a”用于存储商品A的价格。 新建变量“b”用于存储商品B的价格。 1≤n,a,b≤100000 如下图所示: 图片 【输出描述】 新建变量“result”用于存储小杨最多购买商品A和商品B的个数。 如下图所示:

人生就是一个不断学习的过程 497

经典链表面试题:删除链表中重复的节点

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 举个例子 解题思路: 删除掉重复节点,这个和去重有些不一样,去重是保留一个,这里是要有重复的完全删除掉。第一感觉就使用双指针,因为肯定要进行前后比较。两个节点对应的值不相同就往后走,相同就让后面指针自己走,直到不相同。然后删除掉之前的节点。 图解实现: 定义两个指针cur和ne

qq_45928272的博客 1094

28_Spring AI 干货笔记之 OpenAI 聊天功能

本文详细介绍了在Spring AI框架中集成OpenAI聊天模型的方法。内容涵盖API密钥配置、通过starter依赖启用自动配置、连接与模型参数的详细设置,并重点说明了运行时选项的动态覆盖机制。文章还深入讲解了多模态处理(图像与音频)、结构化输出、函数调用等高级功能,提供了示例控制器和手动配置指南,并讨论了与OpenAI兼容服务器的适配与推理模型思维链的获取。

在科技的浪潮中,我们寻找着创新的火种,在代码的海洋里,我们编织着智慧的网。腾飞开源,就是这样一个由技术精英汇聚而成的博客平台,我们致力于分享在Java、Python、IoT和人工智能等领域的最新研究成果和实战经验。 在腾飞开源的博客上,你会看到紧跟技术前 1657

【Agent从入门到实践】01 从“工具函数”到“智能体”:Agent与传统程序的核心区别

传统程序是“你教它怎么做,它才做什么”,Agent是“你告诉它做什么,它自己想怎么做”。从技术层面来说,这个区别的背后,是Agent融合了大语言模型(LLM)、记忆能力、工具调用能力、决策能力等技术,才实现了“自主思考”和“灵活执行”,而这些技术,咱们会在后面的章节中一步步拆解,手把手教大家实现。

人工智能AI技术 989

【链表】删除重复结点

只是需要删除重复的多余结点,保留1个就行。 大致思路: 只需要在当前结点来进行处理就行,因为只是删除多余的,也不用担心头结点会被删去导致返回的不对的错误。一次AC。 AC代码: class Solution { public: ListNode *deleteDuplicates(ListNode *head) { //看结点后面的值是不是一样,一样就跳过,直...

It's the Climb 604

Linux存储软件栈剖析之第5篇:F2FS文件系统

F2FS是三星专为NAND闪存设计的开源文件系统,通过异地更新、磨损均衡等机制优化闪存特性。其架构采用层次化存储管理(Block→Segment→Section→Zone)和多日志区域设计,基于数据热度分类(热/温/冷数据)提升性能。核心创新包括节点地址表(NAT)解决级联更新问题,以及基于成本的垃圾回收算法。F2FS通过检查点机制确保崩溃一致性,并利用并行访问能力充分发挥闪存性能优势,显著降低写放大效应,延长设备寿命。

指尖动听知识库 199

【图文解析】删除链表中连续重复的结点

目录例题描述解题思路代码实现小结 例题描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 示例: 输入:1->2->3->3->4->4->5 输出:1->2->5 结点结构体定义 struct ListNode { int val; struct ListNode *next; }; ...

giturtle's blog 1044

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

删除链表中所有重复的结点

删除链表中所有重复的结点 题目描述 解题思路: 对于删除类的问题需要特别注意的一个点就是链表的头节点,头节点也可能是被删除的结点,所以一般在这种删除类的问题里面,我们都会给出一个伪头结点,为了防止传递二级职责和你这种麻烦的情况出现,首先需要建立一个伪头结点。 接下来,就需要我们去遍历整个链表了,如果说当前节点的值与他的下一个结点的值相等的话,那么他们两个就是都需要被删除的了,为了保证删除之后的链表仍然是相互连接在一起的,我们需要把当前结点的前一个结点和后面值比当前结点大的结点进行项链接,我们要确保当前节

weixin_43831728的博客 1186

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 解题思路: 以先找出相同节点的区间,然后删除区间中的所有值,直到把链表遍历完结束 ...

E_kay的博客 1769

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

删除链表中的重复结点

剑指offer 删除链表中的重复结点 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路:一开始我审错题了以为是没有排序的,想用hashmap来写,哈哈哈。这题有个很关键的点是如果头结点就是重复的会出大问题。最简单...

ChildYH的博客 319

删除该链表中重复的结点,重复的结点不保留

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 import java.util.ArrayList; public class RemoveDuplicatedListNode { public st...

qingqingzijinxin的专栏 220

删除该链表中重复的结点

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->3->4->5 import java.util.ArrayList; public class DeleteDuplicateListNode { public st...

qingqingzijinxin的专栏 178

删除单向链表中的重复结点

完成函数dubdel的编写,该函数删除单向链表中的重复结点,如果链表中存在重复结点(除next指针外的其它数据成员的值相同)时,保留离链首最近的结点。 样例输入: 5 1 2 3 2 4 样例输出: 1 2 3 4 在这里插入代码片 ...

韶言大雅 2479

python 删除链表中重复的结点

''' 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点, 重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 ''' # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # ...

WYXHAHAHA123的博客 724

一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。

一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 public ListNode deleteDuplication() { if (this.head == null) { return null; } ListNode cur = this.head; ListNode newHead = new ...

zxjkl123的博客 863
上一篇: 链表中环的入口点
下一篇: 二叉树的下一个结点
Findway_
博客等级 码龄10年 36粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值