给定一个已排序的链表的头
head, 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
输入: head = [1,2,3,3,4,4,5]
输出: [1,2,5]
第一种解法
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
tmp := &ListNode{Next: head}
cur := tmp
for cur.Next != nil && cur.Next.Next != nil {
val := cur.Next.Val
if cur.Next.Next.Val == val {
for cur.Next != nil && cur.Next.Val == val {
cur.Next = cur.Next.Next
}
}else {
cur = cur.Next
}
}
return tmp.Next
}