c++如何删除链表中重复节点
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,本篇内容主要讲解"c++如何删除链表中重复节点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"c++如何删除链表中重复节点"吧!算法:核心点在于如何找到重复
千家信息网最后更新 2025年01月28日c++如何删除链表中重复节点
本篇内容主要讲解"c++如何删除链表中重复节点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"c++如何删除链表中重复节点"吧!
算法:
核心点在于如何找到重复节点,有序链表的话,只要下一个节点与当前节点数值一样就是重复节点,直接将当前节点指向下一个节点的下一个节点即可。
题目1:删除排序链表中的重复元素
代码实现:
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func deleteDuplicates(head *ListNode) *ListNode { curr := head for curr != nil && curr.Next != nil { if curr.Val == curr.Next.Val { // 删除重复节点,node tmp := curr.Next curr.Next = tmp.Next } else { // 不是重复节点的话,移动节点 curr = curr.Next } } return head}
题目2: 删除排序链表中的重复元素
代码实现
// 算法:与题目1的不同之处在于,本题目是删除所有重复的节点,
// 也就是说不单单要找到重复节点的位置,
// 还需要将第一个重复节点的前一个节点记录下来,这里叫做pre
// 然后通过pre.Next去指向重复节点的后面哪一个不重复的节点,来完成删除。
// 涉及到前序节点pre,就需要考虑哨兵节点。
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
n := new(ListNode) // 设置钩子节点,避免头节点都被删除不好操作
n.Next = head
pre := n
for pre != nil { // pre是当前节点的前一个节点
if pre.Next == nil {
break
}
curr := pre.Next
next := curr.Next
for next != nil { // 比较重复的节点
if next.Val != curr.Val {
break
}
next = next.Next
}
if curr.Next == next {
pre = pre.Next
} else { // 重复的,删除重复节点
pre.Next = next
}
}
return n.Next
}
到此,相信大家对"c++如何删除链表中重复节点"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
节点
题目
c++
代码
元素
内容
指向
算法
学习
排序
不同
实用
更深
有序
不好
也就是
也就是说
位置
兴趣
哨兵
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
oracle数据库客户端
原神云服务器爆满
网易我的世界服务器怎么更新版本
如何落实好网络安全
辽宁数字化城管软件开发系统
软件开发平台之争
中医药特色技术人才数据库
南昌大学网络安全大赛
茂名数字软件开发价钱
河南企业软件开发靠谱吗
镇江服务器机房搭建报价
服务器与数据库优化视频
播放关于网络安全的手抄报
戴尔t440服务器开机画面
济南市浪潮存储服务器销售电话
腾讯邮箱服务器管理部门
服务器收集物资
服务器机柜多长时间维修一次
高中网络安全 课程设计
软件开发各个过程评审
网络安全的研究与分析
网络安全与it运维
佛山东汇网络技术有限公司
.软件开发中的风险
收到软件开发服务会计分录
数据库服务器网站怎么查看
i39100能做服务器吗
软件开发各个过程评审
上海系统软件开发创新服务
局网络安全自查工作的通知