Cover image for Interview Classic 150 Questions P82 Remove Duplicates from Sorted List II

Interview Classic 150 Questions P82 Remove Duplicates from Sorted List II


Timeline

Timeline

2025-11-20

init

linked list

Problem:

Note that the problem requires deleting all nodes with duplicate numbers from the original linked list,leaving only distinct numbers

For linked list deletion problems, creating a dummy head node can avoid special case handling.

123456789101112131415161718192021222324252627282930313233343536373839404142
class Solution {    public:	ListNode *deleteDuplicates(ListNode *head)	{		if (head == nullptr) {			return head;		}		ListNode *virt_head = new ListNode;		virt_head->next = head;		ListNode *prev = virt_head, *curr, *duplicate;		int i, val;		while (prev->next != nullptr) {			val = prev->next->val;			curr = prev->next;			for (i = 0; curr != nullptr; i++) {				if (curr->val == val) {					curr = curr->next;				} else {					break;				}			}			if (i == 0) {				break;			} else if (i == 1) {				prev = prev->next;				continue;			} else {				while (prev->next != curr) {					duplicate = prev->next;					prev->next = duplicate->next;					delete duplicate;				}			}		}		head = virt_head->next;		delete virt_head;		return head;	}};
Loading comments…