Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在单链表中删除值相同的多余节点的算法

在单链表中删除值相同的多余节点的算法

作者头像
lexingsen
发布于 2022-02-24 12:15:10
发布于 2022-02-24 12:15:10
2.9K00
代码可运行
举报
文章被收录于专栏:乐行僧的博客乐行僧的博客
运行总次数:0
代码可运行

思路:分别使用两个指针p和q, 因为可能q->val==p->val时,此时要删除q所指向的节点,所以需要一个s指针记录q,防止发生断链。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
struct node {
	int val;
	node *next;
};


void delDuplication(node *head) {
	for (node *p=head->next; p; p->next) {
		for (node *q=p->next, *s=q; q) {
			if (p->val == q->val) {
				//删除q
				s->next = q->next;
				delete q;
				q = s->next;
			} else {
				s = q;
				q = q->next;
			}
		}
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2024重生之回溯数据结构与算法系列学习(6)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
要实现高效删除,可以使用一个哈希表来记录已经出现过的数值的绝对值。使用哈希表的原因是其查找和插入操作的时间复杂度为O(1)。这样我们可以在线性时间内(O(n))遍历链表,并处理每个节点是否需要删除。
盛透侧视攻城狮
2025/05/19
600
2024重生之回溯数据结构与算法系列学习(6)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
链表的基本操作_简单链表
链表是环环相扣的,head头指针指向头结点,头结点指向首元结点,首元结点指向第二个结点…直到最后的结点。
全栈程序员站长
2022/11/15
6350
链表的基本操作_简单链表
数据结构算法整理-02-单链表
1. 定义单链表 #include "stdio.h" #include "stdlib.h" typedef int datatype; typedef struct node { datatype data; struct node *next; }linklist; 2. 创建一个空链表,返回指向链表的指针 /*创建一个空链表,返回指向链表的指针*/ linklist *creatList() { linklist *head; head = initList(head);
devi
2021/08/18
2830
【CPP】《程序员面试金典》习题(2)——链表
这次的题比较少,题目的主题是链表,最值得注意的是快慢指针的用法和最后一题的Floyd判圈算法。
ZifengHuang
2020/07/29
5470
【手绘漫画】面试必考之手撕单链表(解题模板和深度剖析),(LeetCode 707)
单链表中的每个结点不仅包含值,还包含链接到下一个结点的引用字段。通过这种方式,单链表将所有结点按顺序组织起来。
我是管小亮
2020/04/20
4270
单链表反转的分析及实现
我先画一个单链表,这个单链表有4个元素。我的思路就是,每次把第二个元素提到最前面来。比如下面是第一次交换,我们先让头结点的next域指向结点a2,再让结点a1的next域指向结点a3,最后将结点a2的
猿人谷
2018/01/17
2.3K0
单链表反转的分析及实现
【leetcode刷题】T110-删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
木又AI帮
2019/07/17
3440
数据结构代码题-链表
2.在带头结点的单链表L中,删除所有值为x的结点,并释放其空间,假设值为x的结点不唯一,试编写算法以实现上述操作。
愷龍
2023/10/16
4130
数据结构代码题-链表
删除链表的倒数第 N 个结点(C++)
GeekLiHua
2025/01/21
670
删除链表的倒数第 N 个结点(C++)
线性表的链式存储-单链表
单链表操作 单链表的创建(尾插法、头插法) 单链表的查找操作 单链表的删除操作 单链表的逆置操作(使用头插法) 单链表表长的计算 打印单链表 单链表的创建 头插法 forward_list* creat_3() //头插法 { forward_list *head,*s; int num; head = NULL;//链表初始状态为空 while(scanf("%d",&num) && num) { s = (forward_list*)malloc(sizeof(fo
Cloud-Cloudys
2020/07/06
4580
两个非递增的有序链表的合并
已知两个带头结点的非递增有序的单链表A和B,设计算法将两个单链表合并成一个非递增有序的单链表C.要求单链表C仍使用原来两个链表的存储空间
别团等shy哥发育
2023/02/27
9080
双向链表创建/插入/删除/排序
双向链表有别于单向链表,对于数据的排列、查找更加方便,但需要付出的小小代价则是在数据结构中增加一个指向上一个节点的指针,除了结构上的变化,对于我们理解也相对复杂了一些。
我与梦想有个约会
2023/10/20
3390
数据结构:线性表之链式存储结构
为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对数据ai,除了存储其自身的信息之外,还需存储一个指示其 直接后继的信息(即直接后继的存储位置)。这两部分信息组成数据元素ai的存储映像
s1mba
2018/01/03
1K0
数据结构:线性表之链式存储结构
单向链表增删改查排序操作
在讨论链表这个概念之前,我觉得有必要说一下为什么会有链表?作为一个新手如果不明白这个问题上来就盲目的写链表的代码没有任何意义,就算你现在背下来了,早晚也会忘掉。
我与梦想有个约会
2023/10/20
1830
2024重生之回溯数据结构与算法系列学习(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
盛透侧视攻城狮
2024/12/25
1030
2024重生之回溯数据结构与算法系列学习(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
算法笔记学习-链表
灵活使用递归。构造递归条件,使用递归可以巧妙的解题。不过需要注意有些题目不能使用递归,因为递归深度太深会导致超时和栈溢出。
买唯送忧
2021/05/29
2690
c++单链表的基本操作(全)
俩个基本插入方法 #include <bits/stdc++.h> using namespace std; typedef struct LNode { int date; //节点的数据域 struct LNode *next; //节点的指针域 }LNode,*LinkList; // LinkList 为指向结构体LNode的指针类型 bool Initlist_L(LinkList &L) //构造一个空的单链表L { L = new
莫浅子
2022/11/18
6410
c++单链表的基本操作(全)
2024重生之回溯数据结构与算法系列学习(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
盛透侧视攻城狮
2024/10/22
1070
2024重生之回溯数据结构与算法系列学习(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
循环双向链表(带头节点)
这里我是为了解决王道书上的算法题写的,可能功能不是太多,大多是解题的算法。有的功能我注释了,测试的话去掉注释就行 list.h头文件
别团等shy哥发育
2023/02/27
3570
循环双向链表(带头节点)
删除链表的倒数n个节点
采取双重遍历肯定是可以解决问题的,但题目要求我们一次遍历解决问题,那我们的思路得发散一下。
大忽悠爱学习
2021/03/27
3370
推荐阅读
相关推荐
2024重生之回溯数据结构与算法系列学习(6)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验