删除排序链表中的重复元素-LintCode

来源:互联网 发布:意大利帅哥 知乎 编辑:程序博客网 时间:2024/05/17 07:57

给定一个排序链表,删除所有重复的元素每个元素只留下一个。
样例:
给出 1->1->2->null,返回 1->2->null
给出 1->1->2->3->3->null,返回 1->2->3->null

#ifndef C112_H#define C112_H#include<iostream>using namespace std;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) {        // write your code here        if (head == NULL||head->next==NULL)            return head;        ListNode *cur = head;        ListNode *pre = NULL;        while (cur != NULL)        {            if (pre != NULL&&pre->val == cur->val)            {                pre->next = cur->next;                cur = pre->next;            }            else            {                pre = cur;                cur = pre->next;            }        }        return head;    }};#endif
阅读全文
0 0