Leetcode 83 Remove Duplicates from Sorted List

2018-01-12 14:56:26 浏览数 (4)

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.

删除链表中的重复元素,快慢指针解决!

代码语言:javascript复制
/**
 * 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;
        if(!p) return head;
        ListNode* pre=p;
        while(p->next!=NULL)
        {
            p=p->next;
            if(p->val==pre->val)
                pre->next=p->next;
            else
                pre=p;
        }
        return head;
    }
};

1 人点赞