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