删除链表中重复的结点
Desicription
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
class Solution { public: ListNode* deleteDuplication(ListNode* pHead) { auto newHead = new ListNode(0); newHead->next = pHead; pHead = newHead; auto current = pHead; while(current && current->next) { auto nextNode = current->next; bool reFlag = false; while(nextNode->next && nextNode->val == nextNode->next->val) { nextNode = nextNode->next; reFlag = true; } if(reFlag) { current->next = nextNode->next; } else { current = current->next; } } return pHead->next; } };
|