/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
cur := head
last := &ListNode{-101, nil}
res := last
tmp := -101
for cur != nil {
if cur.Next != nil && cur.Val == cur.Next.Val {
tmp = cur.Val
} else {
if cur.Val != tmp {
last.Next = &ListNode{cur.Val, nil}
last = last.Next
}
}
cur = cur.Next
}
return res.Next
}