82. Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
Example 1:
Input: 1->2->3->3->4->4->5
Output: 1->2->5
Example 2:
Input: 1->1->1->2->3
Output: 2->3
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
dummy := ListNode{Val: 0}
preNode := &dummy
node := head
for node != nil {
cnt := 0
for node.Next != nil && node.Val == node.Next.Val {
node = node.Next
cnt++
}
if cnt == 0 {
preNode.Next = node
preNode = node
} else {
preNode.Next = nil
}
node = node.Next
}
return dummy.Next
}