作者:看那个码农
公众号:看那个码农
上期内容介绍了Go语言学习之力扣-位1的个数|Go主题月
- 位1的个数
本篇内容将继续带领大家走进Go语言的世界。
1.本文简介
Go语言学习之力扣-删除排序链表中的重复元素
来源于:83. 删除排序链表中的重复元素
2.题目描述
存在一个按升序排列的链表,给你这个链表的头节点head,请你删除所有重复的元素,使每个元素只出现一次 。
返回同样按升序排列的结果链表。
示例 1
输入:head = [1,2,2,3,4]
输出:[1,2,3,4]
提示:
- 链表中节点数目在范围 [0, 300] 内
- -100 <= Node.val <= 100
- 题目数据保证链表已经按升序排列
3.思路与方法
- 由题意可知重复的元素在链表中出现的位置是
连续的,因此我们只需要进行一次遍历,就可以删除重复元素; - 由于输入是链表,我们可以用一个指针
fir指向链表的头节点,随后开始对链表进行遍历, - 如果指针
fir与fir.next的元素值相同,可以利用fir.next=fie.next.next将该节点元素删掉。 - 以此类推,用这种方法遍历完链表后,返回
链表头节点输出即可。
4.具体实现代码
func deleteDuplicates(head *ListNode) *ListNode {
if head==nil{
return nil
}
fir:=head
for fir.Next!= nil{
if fir.Val==fir.Next.Val{
fir.Next=fir.Next.Next
}else{
fir=fir.Next
}
}
return head
}
力扣结果输出为:
如果你觉得这篇内容对你有帮助的话:
1、点赞支持下吧,让更多的人也能看到这篇内容
2、关注公众号:看那个码农,我们一起学习一起进步。