반응형
SMALL
안녕하세요. 꼬동입니다.
오랜만에, leetcode에 C를 곁들여 문제를 풀어보았습니다.
아직 죽지 않았더군요.
하하하하하하하
Sorted Single Linked List가 존재합니다.
그 중 중복된 값들을 싸 잡아서, 아예 제거를 하는 것이 목적입니다.
사실 이해는 쉽게 되지만,
어떤 사람이 Single Linked List로 삭제하고 그러겠습니까...
Double Linked List를 쓰고 말지..
그래서 조금 난감했는데, 뭐 ...
펜으로 몇 번 끄적여보니 되더군요.
Pointer를 세 개를 두고, 이를 가지고 놀았습니답.
제일 앞의 노드 (head)와 현재 노드 (tmp)와 현재의 이전 노드 (before)를 사용하여, 이케 저케 하니까 되네요.
그 와중에 좀 조건들이 많았는데,
이거 남들한테 보여주려고 깔끔하게 만들기 위해서 푸는데, 시간이 더 오래걸린거 같네요.
/**
* 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) {
int flag = 0;
ListNode* tmp = head;
ListNode* before = head;
while (tmp) {
if (tmp->next && tmp->val == tmp->next->val) {
flag = 1;
tmp->next = tmp->next->next;
} else {
if (flag) {
if (tmp == head) {
head = tmp->next;
before = tmp->next;
} else {
before->next = tmp->next;
}
} else {
before = tmp;
}
tmp = tmp->next;
flag = 0;
}
}
return head;
}
};
역시 Python 보다는 C로 문제를 풀어야 그 감칠맛이 살지
암
이상 82. Remove Duplicates from Sorted List 2 였습니다. ^_^
반응형
LIST
'알고리즘 문제 풀이 > LeetCode' 카테고리의 다른 글
21. Merge Two Sorted Lists (0) | 2024.01.02 |
---|---|
1038. Binary Search Tree to Greater Sum Tree (0) | 2020.07.26 |
1409. Queries on a Permutation With Key (0) | 2020.07.25 |
85. Maximal Rectangle (2) | 2020.07.08 |
84. Largest Rectangle in Histogram (0) | 2020.07.07 |