문제 링크
요약
- 심플한 linked list 조작문제.
최종
결과
- 중복 없애는 문젠데, 사실상 그냥 linked list 조작하는 문제다.
/**
* 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) {
if (!head) {
return nullptr;
}
auto it_prev = head;
auto it = head->next;
while (it) {
if (it->val == it_prev->val) {
it_prev->next = it->next;
delete it;
it = it_prev->next;
} else {
it_prev = it;
it = it->next;
}
}
return head;
}
};