[leetcode]83. Remove Duplicates from Sorted List
阿新 • • 發佈:2018-12-04
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2 Output: 1->2
分析:
刪除排好序的連結串列中重複的項。若連結串列為空或者只有一個元素,直接返回;否則定義一個結點,從頭開始遍歷,依次比較相鄰結點的值,若相等,刪除其中一個結點即可;否則跳到下一結點,繼續比較。
/** * 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 || !head->next) return head; ListNode* h1 = head;//定義指標指向第一個元素 while(h1 && h1->next) { if(h1->val == h1->next->val) { ListNode* tmp = h1->next; h1->next = h1->next->next; delete tmp; } else h1 = h1->next; } return head; } };