diff --git a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii.go b/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii.go index dfa739522..9f4eee289 100755 --- a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii.go +++ b/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii.go @@ -7,6 +7,22 @@ type ListNode struct { } func deleteDuplicates(head *ListNode) *ListNode { + if head == nil { + return nil + } + + if head.Next != nil && head.Val == head.Next.Val { + val := head.Val + head = head.Next.Next + + for head != nil && head.Val == val { + head = head.Next + } + + return deleteDuplicates(head) + } + + head.Next = deleteDuplicates(head.Next) return head } diff --git a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii_test.go b/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii_test.go index e1e3c8db9..7425e75f4 100755 --- a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii_test.go +++ b/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii_test.go @@ -38,10 +38,10 @@ func Test_Problem0082(t *testing.T) { question{ para{ - []int{1, 1, 2, 2, 3, 3, 4, 4, 5}, + []int{1, 1, 2, 2, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8}, }, ans{ - []int{5}, + []int{5, 6, 7, 8}, }, },