[LeetCode] 83. Remove Duplicates from Sorted List

1. 原題連接:https://leetcode.com/problems/remove-duplicates-from-sorted-list/

2. 解題思路

  1. 刪除鏈表節點會涉及到兩個指針:prev指針和cur指針

3. 算法

  1. prev指針和cur指針分別指向前兩個節點
  2. 從cur指向的節點開始循環遍歷,當prev和cur的val相同時,將prev指向cur->next節點;不然prev指向cur的節點

4. 實現

struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if(head == NULL) return head;
        
        ListNode *prev = head;
        for(ListNode *cur = prev->next; cur != NULL; cur = cur->next){
            if(prev->val == cur->val){
                prev->next = cur->next;
            }else{
                prev = cur;
            }
        }
        return head;
    }
};
相關文章
相關標籤/搜索