package main import . "nc_tools" /* //递归 func deleteDuplicates( head *ListNode ) *ListNode { if head == nil || head.Next == nil { return head } if head.Val == head.Next.Val { for head.Next != nil && head.Val == head.Next.Val { head = head.Next } return deleteDuplicates(head.Next) } else { head.Next = deleteDuplicates(head.Next) return head } } */ //迭代 func deleteDuplicates( head *ListNode ) *ListNode { if head == nil || head.Next == nil { return head } dummy := &ListNode{Next : head} pre := dummy for pre.Next != nil && pre.Next.Next != nil { if pre.Next != nil && pre.Next.Val == pre.Next.Next.Val { x := pre.Next.Val for pre.Next != nil && pre.Next.Val == x { pre.Next = pre.Next.Next } } else { pre = pre.Next } } return dummy.Next }