golang中怎么利用leetcode 删除链表重复元素
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇文章给大家分享的是有关golang中怎么利用leetcode 删除链表重复元素,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、删除
千家信息网最后更新 2025年12月03日golang中怎么利用leetcode 删除链表重复元素
本篇文章给大家分享的是有关golang中怎么利用leetcode 删除链表重复元素,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
一、删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3解题思路:由于是排序链表,所以,直接按照遍历的思路就可以解
1,如果cur.Val==next.Val,cur.Next=next.Next
2,链表正常遍历就行了
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func deleteDuplicates(head *ListNode) *ListNode { cur:=head if cur==nil{ return cur } next:=cur.Next for next !=nil{ fmt.Println(cur,next) if cur.Val==next.Val{ next=next.Next cur.Next=next fmt.Println(cur,next) }else{ cur=next next=next.Next } } return head}二、删除链表中重复元素(没有排序)
给定一个无序链表,删除所有含有重复数字的节点。
示例 1:
输入: 1->3->2->3->5->4->4
输出: 1->3->2->5->4
示例 2:
输入: 1->1->1->2->3
输出: 1->2->3
这种情况下就需要对元素值进行hash,如果不存在则忽略元素
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func deleteDuplicates(head *ListNode) *ListNode { h:=&ListNode{} h.Next=head cur:=head m:=make(map[int]int) next:=cur.Next for cur!=nil && next!=nil{ m[cur.Val]++ if m[next.Val]==0{ cur=next next=next.Next }else{ cur.Next=next.Next next=next.Next } } if next!=nil && m[next.Val]==0 { cur.Next=next }else{ cur.Next=nil } return h.Next }三、删除排序链表中的重复元素 II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3解题思路:
1,始终要让pre在cur的前面,通过判断cur.val == cur.next.val判断重复元素是否存在。
2,为了简化,给链表加一个头部
h -> 1 -> 2 3 3 4 -> 4 -> 5
| |
pre cur
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func deleteDuplicates(head *ListNode) *ListNode { h:=&ListNode{} h.Next=head cur:=head pre:=h for cur!=nil{ flag:=false for cur.Next!=nil && cur.Val==cur.Next.Val{ cur=cur.Next flag=true } if flag{ pre.Next=cur.Next }else{ pre.Next=cur pre=cur } cur=cur.Next } return h.Next}以上就是golang中怎么利用leetcode 删除链表重复元素,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
元素
示例
排序
输入
输出
思路
数字
更多
知识
篇文章
节点
原始
实用
头部
就是
工作会
情况
文章
看吧
知识点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mmo服务器实体属性管理
java 附件服务器
网络安全隔离平台重装系统
怎么做网站数据库
数据库质疑 多用户模式
大疆飞行安全数据库升级
超链接失效跟服务器有关吗
国际服哪个服务器最多人
网络安全与反诈800字
网络安全法什么时候实行呢
ipv4的服务器有多少
python如何做软件开发
绍兴制造执行系统软件开发
多余的服务器可以回收吗
网络安全专题研判
网上建设服务器
ug8.5里没有密度数据库吗
数据库键盘输入获取
f1000数据库数据类型
什么命令可以接收串口数据库
应届生网络安全简历
我和网络安全论文
数据库233什么错误
软件开发需求是谁来写
打开数据库的命令语句是use
网络安全法从几几年开始实行
数据库表有哪几种锁
em创建数据库
比亚迪网络技术专员
浙大网络安全专业