`

Remove Duplicates from Sorted List

 
阅读更多
/**
 * 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 NULL;
        if(!head->next) return head;
        
        ListNode *last = head;
        ListNode *cur = head->next;
        
        ListNode *dh = new ListNode(0);
        dh->next = head;
        
        ListNode *pre = dh;
        
        while(cur) {
            if(cur->val != last->val) {
                while(last->next != cur) {
                    last = last->next;
                    delete pre->next;
                    pre->next = last;
                }
                pre = last;
                last = cur;
            }
            cur = cur->next;
        }
        
        while(last->next != cur) {
            last = last->next;
            delete pre->next;
            pre->next = last;
        }
        
        cur = dh->next;
        delete dh;
        return cur;
    }
};

 

欢迎关注微信公众号——计算机视觉:

分享到:
评论

相关推荐

    82. Remove Duplicates from Sorted List II

    Remove Duplicates from Sorted List II"是一个中等难度的链表处理问题,要求从已排序的链表中删除所有重复的元素,使得每个元素只出现一次。输入是一个单链表,其中节点值是整数,链表已经按升序排序。 【解法一...

    c语言-leetcode题解之0083-remove-duplicates-from-sorted-list.zip

    本压缩包文件名为“c语言-leetcode题解之0083-remove-duplicates-from-sorted-list.zip”,所涉及的题目编号为0083,题目名称为“remove duplicates from sorted list”,直译为“从已排序链表中删除重复项”。...

    C语言-leetcode题解之83-remove-duplicates-from-sorted-list.c

    在LeetCode平台上,有一个题目编号为83的题目,称为“Remove Duplicates from Sorted List”(从排序链表中删除重复项)。这道题目要求的是在给定一个按照升序排列的单链表,编写程序去除链表中的重复元素。在C语言...

    python-leetcode题解之083-Remove-Duplicates-from-Sorted-List

    python python_leetcode题解之083_Remove_Duplicates_from_Sorted_List

    js-leetcode题解之83-remove-duplicates-from-sorted-list.js

    然后编写removeDuplicates函数,该函数的核心逻辑是使用两个指针pre和cur分别表示当前节点和下一个节点。在遍历链表的过程中,当发现cur节点的值与pre节点的值相同时,说明遇到了重复节点,需要进行删除操作,并调整...

    leetcode-cpp刷题

    - **2.2.5 Remove Duplicates from Sorted List II** - 移除排序链表中的重复元素,包括头部。 - 实现思路:使用虚拟头结点简化边界条件处理。 - **2.2.6 Rotate List** - 旋转链表。 - 实现思路:先找到链表...

    leetcode2sumc-LeetCode:LeetCode的一些题目

    Duplicates from Sorted List 141 Easy Linked List Cycle 160 Easy Intersection of Two Linked Lists 203 Easy Remove Linked List Elements no 206 Easy Reverse Linked List 234 Easy Palindrome Linked List

    Leetcode题目+解析+思路+答案.pdf

    - **Remove Duplicates from Sorted List**:从已排序的链表中移除重复项。 - **Merge Sorted Lists**:合并两个已排序的链表。 - **Reverse Linked List**:反转链表。 - **Swap Nodes in Pairs**:交换链表中...

    leetcode浇花-LCSolutions:我的力扣解决方案

    Duplicates from Sorted List #0118 - Pascal's Triangle #0121 - Best Time to Buy and Sell Stock #0125 - Valid Palindrome #0136 - Single Number #0167 - Two Sum - Input Array is sorted #0189 - Rotate ...

    Leetcode答案(c++版)

    **1.6 Remove Duplicates from Sorted List II (82)** - **问题描述**:给定一个已排序的链表,删除其中所有重复的元素,使得每个元素只出现一次。 - **解题思路**: - 使用虚拟头节点帮助处理边界情况。 - 遍历...

    leetcode-js:算法和数据结构是一个程序员的灵魂,LeetCode JavaScript TypeScript 题解

    83.删除排序链表中的重复元素 (Remove Duplicates from Sorted List) 88.合并两个有序数组 (Merge Sorted Array) 100.相同的树 (Same Tree) 104.二叉树的最大深度 (Maximum Depth of Binary Tree) 118.杨辉三角 ...

    LeetCode:关于LeetCode.com和ACM的一些算法问题

    Remove Duplicates from Sorted List II题目: | 源码:标签:单向链表难度:中等 / Medium146. LRU Cache题目: | 源码:标签:哈希表,双向链表难度:中等 / Medium212. Word-Search-II题目: | 英文站源码:./...

    leetcode2sumc-ack-CherishLeetCode:ack-CherishLeetCode

    leetcode 2 sum c LeetCode 贵有恒,何必三更起五更睡;最无益,只怕一日暴十寒。 我的个人网站: 分享技术,乐享生活:Jack ...Duplicates from Sorted List 141 * Linked List Cycle 160 * Intersection of Two Linke

    leetcode2sumc--Offer:-提供

    leetcode 2 sum c LeetCode 贵有恒,何必三更起五更睡;最无益,只怕一日暴十寒。 我的个人网站: 分享技术,乐享生活:Jack ...Duplicates from Sorted List 141 * Linked List Cycle 160 * Intersection of Two Linke

    LeetCode leetcode部分题解答代码实现

    * Remove Duplicates from Sorted List:给定一个已排序的链表,移除重复元素,并返回新链表。这个题目需要使用快慢指针的思想,将链表分解成更小的子链表,并移除重复元素。 8. 数学 数学是一种非常重要的知识...

    javalruleetcode-JavaInterviewChecklist:要检查的Java事项

    Duplicates from Sorted List Palindrome Linked List LL中的插入排序 使用额外的缓冲区从未排序的链表中删除重复项 细绳 确定字符串是否包含所有唯一字符 (CTCI) 在不使用额外缓冲区的情况下删除字符串中的重复字符...

    js-leetcode题解之82-remove-duplicates-from-sorted-list-ii.js

    本文档是关于JavaScript实现LeetCode算法题82题的解法,题目的要求是移除有序链表中的重复元素,这里的关键是链表是已经有序的,我们需要删除所有的重复项。为了解决这个问题,我们需要考虑一种方式能够遍历链表同时...

    c语言-leetcode题解之0082-remove-duplicates-from-sorted-list-ii.zip

    在编程学习中,LeetCode 是一个提供算法练习的平台,旨在帮助开发者提高编程技能,尤其是在数据结构和算法方面。本题解针对的是 LeetCode 上编号为 82 的问题,即“从排序链表中删除重复项 II”。...

    lrucacheleetcode-LeetCode:LeetCode刷题

    II(Remove Duplicates from Sorted List II) 2018.9.27 重建二叉树(Rebuild Binary Tree) 2018.9.28 把字符串转换成整数(Convert a string to an integer) 2018.10.8 树的子结构(Substructure of the tree) ...

Global site tag (gtag.js) - Google Analytics