題目
給定一個排序鏈表,刪除所有重複的元素,使得每個元素只出現一次。
示例 1:
輸入: 1->1->2
輸出: 1->2
示例 2:
輸入: 1->1->2->3->3
輸出: 1->2->3
來源:力扣(LeetCode)
思路
遍歷整個鏈表,將每個結點和其後面的結點比較,如果結點值相同,將前面結點的 next 指針跳過緊挨着的相同值的結點,指向後面一個結點,留下的鏈表就是沒有重複項的。
C++代碼
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head)
{
ListNode *cur = head;
while (cur && cur -> next)
{
if (cur -> val == cur -> next -> val)
{
cur -> next = cur -> next -> next;
}
else
{
cur = cur -> next;
}
}
return head;
}
};