1. 程式人生 > >LeetCode 83. 刪除排序連結串列中的重複元素(Remove Duplicates from Sorted List)

LeetCode 83. 刪除排序連結串列中的重複元素(Remove Duplicates from Sorted List)

題目描述

給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。

示例1:

輸入: 1->1->2
輸出: 1->2

示例2:

輸入: 1->1->2->3->3
輸出: 1->2->3

解題思路

移除有序連結串列中的重複項需要定義個指標指向該連結串列的第一個元素,然後第一個元素和第二個元素比較,如果重複了,則刪掉第二個元素,如果不重複,指標指向第二個元素。這樣遍歷完整個連結串列,則剩下的元素沒有重複項。

程式碼展示

/**
 * 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) { while(!head){ return head; } ListNode* first=head; ListNode* sec=head->next; while(sec!=NULL){ if(first->val==sec->val){ first->next=
sec->next; } else{ first=first->next; } sec=sec->next; } return head; } };