Skip to content

Commit cea4092

Browse files
committed
3
1 parent f7a4c4a commit cea4092

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* struct ListNode {
4+
* int val;
5+
* ListNode *next;
6+
* ListNode(int x) : val(x), next(NULL) {}
7+
* };
8+
*/
9+
class Solution {
10+
public:
11+
ListNode *deleteDuplicates(ListNode *head) {
12+
// Start typing your C/C++ solution below
13+
// DO NOT write int main() function
14+
15+
if (head == NULL)
16+
return head;
17+
18+
ListNode preHead(0);
19+
preHead.next = head;
20+
21+
ListNode *preprev = &preHead;
22+
ListNode *prev = head;
23+
ListNode *node = head->next;
24+
bool flag = false;
25+
26+
while (node != NULL) {
27+
if (prev->val == node->val) {
28+
ListNode *del = node;
29+
node = node->next;
30+
flag = true;
31+
delete del;
32+
}
33+
else {
34+
if (flag) {
35+
flag = false;
36+
preprev->next = node;
37+
prev = node;
38+
node = node->next;
39+
}
40+
else {
41+
preprev = prev;
42+
prev = node;
43+
node = node->next;
44+
}
45+
}
46+
}
47+
if (flag) {
48+
preprev->next = NULL;
49+
delete prev;
50+
}
51+
52+
return preHead.next;
53+
}
54+
};
55+
56+
// Accepted after my first commit, yeah.

0 commit comments

Comments
 (0)