leetcode 67:remove-duplicates-from-sorted-list
题目描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表为1→1→21\to1\to21→1→2,返回1→21 \to 21→2.
给出的链表为1→1→2→3→31\to1\to 2 \to 3 \to 31→1→2→3→3,返回1→2→31\to 2 \to 31→2→3.
例如:
给出的链表为1→1→21\to1\to21→1→2,返回1→21 \to 21→2.
给出的链表为1→1→2→3→31\to1\to 2 \to 3 \to 31→1→2→3→3,返回1→2→31\to 2 \to 31→2→3.
题目分析:
链表中元素是有序的,因此如果有重复的元素的话,元素肯定相邻
代码如下:
1 ListNode* deleteDuplicates(ListNode* head) { 2 ListNode* cur = head; 3 while(cur != nullptr) 4 { 5 while(cur->next != nullptr && cur->val == cur->next->val) 6 cur->next = cur->next->next; 7 cur = cur->next; 8 } 9 return head; 10 }