给定一个有序单链表(从小到大有序)的头结点head(该结点有值),删除链表中的重复元素,使链表中的所有元素都只出现一次。如当输入{1,1,2} 时,经删除后,原链表变为 {1,2},对应的输出为 {1,2}。
代码实现
C语言代码:
structListNode*deleteDuplicates(structListNode*head){ if(head==NULL) returnhead; structListNode*p; p=head; while(p->next!=NULL) { if(p->val==p->next->val) p->next=p->next->next; else p=p->next; } returnhead; }
图解代码
第一步:定义一个新结点,将其指向头结点
第二步:当前结点的值与当前结点的下一个结点数值做比较:如果数值相等,直接将当前结点指向下一个结点的next结点;不相等的话继续遍历结点
第三步:返回头结点
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C语言
+关注
关注
180文章
7604浏览量
136710 -
代码
+关注
关注
30文章
4780浏览量
68536 -
数据结构
+关注
关注
3文章
573浏览量
40124 -
链表
+关注
关注
0文章
80浏览量
10558
原文标题:数据结构:删除有序链表的重复节点
文章出处:【微信号:嵌入式攻城狮,微信公众号:嵌入式攻城狮】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
数据结构中最简单的链表
数据结构作为嵌入式工程师必修课程之一,今天,我们就来讲一讲数据结构中最简单的链表,包含链表的初始化、插入和遍历操作。 链表在项目开发中使用的
发表于 06-13 17:40
•367次阅读
Linux Kernel数据结构:链表
Linux Kernel数据结构:链表原创 2016年10月20日 22:58:25标签:LINUX/kernel/链表 数据结构数据结构中
发表于 09-25 16:41
收藏 | 程序员面试,你必须知道的8大数据结构
是另一个重要的线性数据结构,乍一看可能有点像数组,但在内存分配、内部结构以及数据插入和删除的基本操作方面均有所不同。链表就像一个
发表于 09-30 09:35
你知道Linux内核数据结构中双向链表的作用?
Linux 内核提供一套双向链表的实现,你可以在 include/linux/list.h 中找到。我们以双向链表着手开始介绍 Linux 内核中的数据结构 ,因为这个是在 Linux 内核中使用最为广泛的
发表于 05-14 17:27
•1876次阅读
浅析LeetCode 83删除排序链表中的重复元素
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
链表数据结构基本概念
的必要元素。 头节点: 头结点是为了操作的统一和方便而设立的,放在第一元素的结点之前,其数据域一般无意义(也可存放链表的长度)。 有了头结点,对在第一元素结点前插入结点和删除第一结点,
评论