Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.
class Solution { public: ListNode *deleteDuplicates(ListNode *head) { // Start typing your C/C++ solution below // DO NOT write int main() function ListNode dy_node(0), *q = &dy_node; ListNode de_node(0), *q1 = &de_node; int last = INT_MAX, counter = 0; ListNode * pre = head; for(ListNode *p = head; p; p = p->next){ if (last != p->val){ if (counter == 1){ q = q->next = pre; } counter = 1; pre = p; last = p->val; }else{ counter++; } } if (counter == 1){ q = q->next = pre; counter = 0; } q->next = NULL; q1->next = NULL; /* ListNode *p = de_node.next; while(p){ ListNode *temp = p->next; delete p; p = temp; }*/ return dy_node.next; } };
浙公网安备 33010602011771号