美文网首页
Leetcode82. 删除排序链表中的重复元素**

Leetcode82. 删除排序链表中的重复元素**

作者: LonnieQ | 来源:发表于2019-11-14 21:53 被阅读0次

题目

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

示例 1:

输入: 1->2->3->3->4->4->5
输出: 1->2->5

示例 2:

输入: 1->1->1->2->3
输出: 2->3

C++解法

#include <iostream>
#include <vector>
#include <map>
#include <set>
using namespace std;
 struct ListNode {
     int val;
     ListNode *next;
     ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        ListNode * p = new ListNode(0);
        p->next = head;
        head = p;
        ListNode * left, * right;
        while (p->next) {
            left = p->next;
            right = left;
            while (right->next && right->next->val == left->val) {
                right = right->next;
            }
            if (left == right) p = p->next;
            else p->next = right->next;
        }
        return head->next;
    }
};
int main(int argc, const char * argv[]) {
    // insert code here...
    Solution solution;
    ListNode * node = new ListNode(1);
    node->next = new ListNode(1);
    node->next->next = new ListNode(1);
    node->next->next->next = new ListNode(2);
    node->next->next->next->next = new ListNode(3);
    ListNode * result = solution.deleteDuplicates(node);
    while (result != NULL) {
        cout << result->val << " ";
        result = result->next;
    }
    cout << endl;
    return 0;
}

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii

相关文章

网友评论

      本文标题:Leetcode82. 删除排序链表中的重复元素**

      本文链接:https://www.haomeiwen.com/subject/hfmdictx.html