0082.删除排序链表中的重复元素 II
方法一:一次遍历
时间复杂度 $O(n)$,空间复杂度 $O(1)$。
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
dummy := &ListNode{}
p := dummy
for head != nil {
p1, p2 := head, head
for p2 != nil && p1.Val == p2.Val {
p2 = p2.Next
}
if p1.Next == p2 {
p.Next, p = p1, p1
}
head = p2
}
p.Next = nil
return dummy.Next
}