Last updated on October 9th, 2024 at 10:34 pm

Here, We see ** Remove Duplicates from Sorted List II LeetCode Solution**. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.

*List of all LeetCode Solution*

*List of all LeetCode Solution*

## Topics

Linked List

## Level of Question

Medium

**Remove Duplicates from Sorted List II LeetCode Solution**

## Table of Contents

**Problem Statement**

Given the `head`

of a sorted linked list, *delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list*. Return *the linked list sorted as well*.

Example 1: Input: head = [1,2,3,3,4,4,5] Output: [1,2,5] Example 2: Input: head = [1,1,1,2,3] Output: [2,3]

**1. Remove Duplicates from Sorted List II Leetcode Solution C++**

class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(!head||!head->next) return head; ListNode* dummy = new ListNode(0); ListNode* tail = dummy; int flag = true; // should the current head be added ? while(head){ while(head&&head->next&&head->val==head->next->val) { flag = false; // finds duplicate, set it to false head = head->next; } if(flag) // if should be added { tail->next = head; tail = tail->next; } head = head->next; flag = true; // time for a new head value, set flag back to true } tail->next = nullptr; // Don't forget this... I did.. return dummy->next; } };

**2. Remove Duplicates from Sorted List II Leetcode Solution Java**

class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode dummy = new ListNode(0), fast = head, slow = dummy; slow.next = fast; while(fast != null) { while (fast.next != null && fast.val == fast.next.val) { fast = fast.next; //while loop to find the last node of the dups. } if (slow.next != fast) { //duplicates detected. slow.next = fast.next; //remove the dups. fast = slow.next; //reposition the fast pointer. } else { //no dup, move down both pointer. slow = slow.next; fast = fast.next; } } return dummy.next; } }

**3. Remove Duplicates from Sorted List II Leetcode Solution JavaScript**

var deleteDuplicates = function(head) { if (head == null || head.next == null) return head; var fake = new ListNode(0); fake.next = head; var curr = fake; while(curr.next != null && curr.next.next != null){ // curr.next means the next node of curr pointer and curr.next.next means the next of next of curr pointer... if(curr.next.val == curr.next.next.val) { let duplicate = curr.next.val; while(curr.next !=null && curr.next.val == duplicate) { curr.next = curr.next.next; } } else{ curr = curr.next; } } return fake.next; };

**4. Remove Duplicates from Sorted List II Solution Python**

class Solution(object): def deleteDuplicates(self, head): fake = ListNode(-1) fake.next = head curr, prev = head, fake while curr: while curr.next and curr.val == curr.next.val: curr = curr.next if prev.next == curr: prev = prev.next curr = curr.next else: prev.next = curr.next curr = prev.next return fake.next