Files
Arkaprabha Chakraborty cab1180397 Refactor almost everything
2022-08-02 12:21:43 +05:30

34 lines
893 B
C++

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 {
private:
ListNode *removeElements(ListNode *head, int val) {
if (head == nullptr) {
return nullptr;
} else if (head->val == val) {
return removeElements(head->next, val);
} else {
head->next = removeElements(head->next, val);
return head;
}
}
public:
ListNode *deleteDuplicates(ListNode *head) {
for (ListNode *curr = head; curr != nullptr && curr->next != nullptr;
curr = curr->next) {
if (curr->val == curr->next->val) {
curr->next = removeElements(curr->next, curr->val);
}
}
return head;
}
};