タイトル:ソートに繰り返し要素のリストを削除します。
元の質問へのリンク:削除は、繰り返し要素のリストを並べ替え
この問題は、前面および背面を示すために、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 == NULL) return head;
ListNode* p = head;
ListNode* q = head->next;
while(q!=NULL)
{
if(p->val == q->val)
{
q = q->next;
p->next = q;
}
else
{
p = q;
q = q->next;
}
}
return head;
}
};
実装:
余談:
あなたは進行ものを私に尋ねましたか?私は自分の友人になることを始めました。
-アラン・ド・ボトン