【力扣 092】82. 刪除排序連結串列中的重複元素 II
阿新 • • 發佈:2022-05-31
82. 刪除排序連結串列中的重複元素 II
給定一個已排序的連結串列的頭 head , 刪除原始連結串列中所有重複數字的節點,只留下不同的數字 。返回 已排序的連結串列 。
示例 1:
輸入:head = [1,2,3,3,4,4,5]
輸出:[1,2,5]
示例 2:
輸入:head = [1,1,1,2,3]
輸出:[2,3]
提示:
連結串列中節點數目在範圍 [0, 300] 內
-100 <= Node.val <= 100
題目資料保證連結串列已經按升序 排列
來源:力扣(LeetCode)
連結:https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
程式碼實現:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(!head) return head; ListNode *dumy = new ListNode(0), *pre = dumy, *p = head; dumy->next = head; while(p) { while(p->next && p->val == p->next->val) p = p->next; if(pre->next != p) { pre->next = p->next; p = pre->next; } else { pre = pre->next; p = p->next; } } return dumy->next; } };