/**
* 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
}
var curr = head
for curr!=nil && curr.Next!=nil{
if curr.Val==curr.Next.Val{
if curr.Next.Next!=nil{//如果下一个的下一个不为空,即1->1->2
curr.Next = curr.Next.Next//下一个元素变成下一个的下一个,变成1->2
}else{
curr.Next = nil//如果下一个的下一个为空,即1->1->nil,变成1->nil
}
}else{
curr = curr.Next//指向下一个元素
}
}
return head
}
原文:https://www.cnblogs.com/pangqianjin/p/14640552.html