EX:
Input: 1->2->3->3->4->4->5
Output: 1->2->5想法:
這題沒啥特別的作法,基本上就照著實做,然後 linked list 類的題目記得要特別注意 head 相關的 edge case。
完整程式碼:
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode dummy(0);
dummy.next = head;
ListNode* pre = &dummy;
ListNode* cur = head;
while (cur != nullptr) {
if (cur->next != nullptr && cur->val == cur->next->val) {
while (cur->next != nullptr && cur->val == cur->next->val) {
pre->next = cur->next->next;
cur = cur->next;
}
cur = cur->next;
}
else {
pre = cur;
cur = pre->next;
}
}
return dummy.next;
}
};
沒有留言:
張貼留言