Leetcode 82. Remove Duplicates from Sorted List II

时间:2022-06-22
本文章向大家介绍Leetcode 82. Remove Duplicates from Sorted List II,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/82503758

文章作者:Tyan 博客:noahsnail.com | CSDN | 简书

1. Description

2. Solution

/**
 * 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) {
        if(!head) {
            return nullptr;
        }
        ListNode* new_head = new ListNode(0);
        ListNode* prev = new_head;
        prev->next = head;
        ListNode* current = head;
        while(current) {
            while(current->next && current->val == current->next->val) {
                current = current->next;
            }
            if(prev->next == current) {
                prev = prev->next;
            }
            else {
                prev->next = current->next;
            }
            current = current->next;
        }
        return new_head->next;
    }
};

Reference

  1. https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/description/