Leetcode #83 Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 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) {
        ListNode* p = head ,*q ;
    	if (p) q = head->next;
    	else return p;
    	while (q)
    	{
    		if (q->val == p->val)
    		{
    			q = q->next;
    		}
    		else 
    		{
    			p->next = q;
    			p = q;
    			q = q->next;
    		}
    	}
    	p->next = NULL;
    	return head;
    }
};

雙指針法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章