题解 | #删除链表中重复的结点(优化)#
删除链表中重复的结点
https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* deleteDuplication(ListNode* pHead) { if(pHead == NULL){ return NULL; } if(pHead->next == NULL){ return pHead; } ListNode* newhead = new ListNode(0); newhead->next = pHead; ListNode* temp = newhead; ListNode* front = pHead; ListNode* back = pHead->next; while(back !=NULL){ if(front->val == back->val){ while(front->val == back->val&& back!=NULL){ back = back->next; } temp->next = back; front = back; if(back!= NULL){ back = back->next; } } else{ temp = temp->next; front = front->next; back = back->next; } } return newhead->next; } };