題目網址:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/

題意:給一 sorted linked list, 刪除 linked list 所有重複的元素, 讓每種元素恰好出現一次。

Solution:

想法:比較當前 node 和 下一個 node 的 val, 若相同則刪除下一個, 直到下一個的值不同, cur 才前進

class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode *curr = head;

while (curr && curr->next) {
if (curr->val == curr->next->val) {
curr->next = curr->next->next;
} else {
curr = curr->next;
}
}

return head;
}
};
  • time:$O(n)$ ➔ 遍歷 linked list 中 $\dfrac{n}{2}$ 個元素
  • space:$O(1)$ ➔ 只需要常數空間