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