[LintCode]112.删除排序链表中的重复元素

来源:互联网 发布:sftp登录 端口号 编辑:程序博客网 时间:2024/06/09 02:39

给定一个排序链表,删除所有重复的元素每个元素只留下一个。

样例

给出 1->1->2->null,返回 1->2->null

给出 1->1->2->3->3->null,返回 1->2->3->null


/** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode *next; *     ListNode(int val) { *         this->val = val; *         this->next = NULL; *     } * } */class Solution {public:    /**     * @param head: The first node of linked list.     * @return: head node     */    ListNode *deleteDuplicates(ListNode *head) {        if(head==NULL)  return NULL;        ListNode *cur=head;        ListNode *pre=head;        while(cur!=NULL)        {            if(pre->val==cur->val)            {   //删除所有重复的元素                pre->next=cur->next;                cur=pre->next;            }else{     //pre==NULL或pre与cur值不同,继续向后寻找                pre=cur;                cur=pre->next;            }        }        return head;    }};


原创粉丝点击