0082.删除排序链表中的重复元素 II

方法一:一次遍历

时间复杂度 O(n)O(n),空间复杂度 O(1)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 }