File tree 1 file changed +56
-0
lines changed
RemoveDuplicatesfromSortedListII
1 file changed +56
-0
lines changed Original file line number Diff line number Diff line change
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.
You can’t perform that action at this time.
0 commit comments