In this post, we are going to solve the 83. Remove Duplicates from Sorted List problem of Leetcode. This problem 83. Remove Duplicates from Sorted List is a Leetcode easy level problem. Let’s see code, 83. Remove Duplicates from Sorted List – Leetcode Solution.
Problem
Given the head of a sorted linked list, delete all duplicates such that each element appears only once. Return the linked list sorted as well.
Example 1 :
Input: head = [1,1,2]
Output: [1,2]
Example 2 :
Input: head = [1,1,2,3,3]
Output: [1,2,3]
Constraints
- The number of nodes in the list is in the range
[0, 300]
. -100 <= Node.val <= 100
- The list is guaranteed to be sorted in ascending order.
Now, let’s see the code of 83. Remove Duplicates from Sorted List – Leetcode Solution.
Remove Duplicates from Sorted List – Leetcode Solution
83. Remove Duplicates from Sorted List – Solution in Java
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ public class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode list = head; while(list != null) { if (list.next == null) { break; } if (list.val == list.next.val) { list.next = list.next.next; } else { list = list.next; } } return head; } }
83. Remove Duplicates from Sorted List – Solution in C++
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* deleteDuplicates(ListNode* head) { ListNode* curr = head; while(curr!=NULL and curr->next!=NULL){ if(curr->val==curr->next->val){ ListNode* temp = curr->next; curr->next = curr->next->next; delete(temp); } else curr=curr->next; } return head; } };
83. Remove Duplicates from Sorted List – Solution in Python
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution(object): def deleteDuplicates(self, head): """ :type head: ListNode :rtype: ListNode """ cur = head while cur: while cur.next and cur.next.val == cur.val: cur.next = cur.next.next # skip duplicated node cur = cur.next # not duplicate of current node, move to next node return head
Note: This problem 83. Remove Duplicates from Sorted List is generated by Leetcode but the solution is provided by CodingBroz. This tutorial is only for Educational and Learning purpose.