首页 > 其他分享 >82. 删除排序链表中的重复元素 II

82. 删除排序链表中的重复元素 II

时间:2023-11-30 15:57:13浏览次数:45  
标签:tmp II head ListNode pre val next 链表 82

82. 删除排序链表中的重复元素 II

2021年3月25日

​ 数据量300,数据大小[-200,200]

​ 题意很简单,就考验你指针的使用。

​ 两种方法

桶排序暴力法

思路很简单,加个100的偏移量,然后全都存下来,再倒着存进链表里返回即可。

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        vector<int>v(201);
        while(head){
            v[head->val+100]++;
            ListNode* tmp=head;
            head=head->next;
            delete(tmp);
        }
        for(int i=200;i>=0;i--)
            if(v[i]==1){
                ListNode* tmp=new ListNode(i-100,head);
                head=tmp;
            }
        return head;
    }
};

双(三)指针法

嗯,也没什么难理解的。

新建一个头指针指向head,然后从头到尾遍历。

对于[3,3,3]

我们在while里处理成[3]

再令pre->next=p(3)->next,再给它叉掉就完事了

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        ListNode *pre=new ListNode(0,head);
        ListNode *dump=pre;
        ListNode *p=head;
        while(p&&p->next){
            if(p->val==p->next->val){  
                while(p->next&&p->val==p->next->val){
                    ListNode *tmp=p->next;
                    p->next=tmp->next;
                    delete(tmp);
                }
                pre->next=p->next;
                delete(p);
            }
            else
                pre=p;
            p=pre->next;
        }
        head=dump->next;
        delete(dump);
        return head;
    }
};

标签:tmp,II,head,ListNode,pre,val,next,链表,82
From: https://www.cnblogs.com/CrossAutomaton/p/17867539.html

相关文章

  • 83. 删除排序链表中的重复元素
    83.删除排序链表中的重复元素2021年3月26日删除排序链表中的重复元素II的简化版,while套while就行为了时间,指针都不删除吗?classSolution{public:ListNode*deleteDuplicates(ListNode*head){ListNode*p=head;while(p&&p->next){w......
  • 61. 旋转链表
    61.旋转链表2021年3月27日将链表每个节点向右移动\(k\)个位置首先,假设链表长度为\(len\)当\(k<len\)时,相当于后\(k\)位移到前面当\(k>len\)时,令\(k\%=len\),然后再移动即可classSolution{public:ListNode*rotateRight(ListNode*head,intk){if(he......
  • 代码随想训练营第四十四天(Python)| 完全背包、518. 零钱兑换 II 、377. 组合总和 Ⅳ
    [完全背包]有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。1、先遍历物品再遍历背包defall_bag(weight,value,bag_weight):dp=[0]*......
  • 使用Win-ACME在Windows+iis服务器下配置自动续期SSL证书
    使用Win-ACME在Windows+iis服务器下配置自动续期SSL证书 由于网站建设和小程序开发等都需要https,但是ssl证书有过期的限制,如果没有及时续期ssl证书,那么将会影响线上程序正常运行,因此我便找了很多可以在windows服务器下使用的自动续期证书的工具。win-acme,github地址:https:/......
  • Codeforces Round 829 (Div. 1)A1. Make Nonzero Sum (easy version)(思维找规律)
    先考虑无解的情况:当n为奇数时无解相邻的两个元素一定可以变成0\[a[i]!=a[i+1]时,分成[i,i],和[i+1,i+1]\]\[a[i]=a[i+1]时,分成[i,i+1]\]这两种情况对答案的贡献都是0,当n为奇数时我们总会有一个没办法凑成0.#include<bits/stdc++.h>#definelsp<<1#......
  • IIS 10的重大更新通常会随着Windows Server和Windows 10的累积更新一起发布,这些更新可
    IIS10是WindowsServer 和Windows10操作系统中内置的Web服务器角色。针对IIS10的重大更新通常会随着WindowsServer和Windows10的累积更新一起发布,这些更新可能包括性能改进、安全性增强、新功能和修复程序。在过去的更新中,IIS10可能会获得以下方面的重大改进:安全性增......
  • CF1827C Palindrome Partition 题解
    题目链接点击打开链接题目解法首先考虑一个朴素的\(dp\)令\(f_i\)表示以\(i\)结尾的合法子串的个数为了不重不漏,我们令\(le_i\)表示以\(i\)为右端点,离\(i\)最近的偶回文串的左端点,然后不难得到转移为\(f_i=f_{le_i-1}+1\)为什么不会漏?考虑以\(i\)为右端点,且比......
  • IIS的web.config中跨域访问设置方法
    需求:页面要显示1个图片,但是因为各种原因,导致图片在服务器2上,但是要展示的程序在服务器1的上面,这样就造成了在显示的时候出现了跨域的问题,本来的思路为直接写个程序进行后台获得图片的路径,然后把图片进行下载出来,然后返回服务器1的图片地址,但是,由于这个周期不确定性和现阶段项目的......
  • 19.删除链表的倒数第N个节点
    leetcode题目链接题目描述给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1]提示:链表中结点的数目为sz1<=sz<=300<=Node.val<=10......
  • 中间件IIS监控指标、配置和Windbg调试分析
    1.关键性能计数器指标a.Web服务(W3SVC)性能计数器当前连接数(CurrentConnections):显示当前所有HTTP连接的数量。过高的数值可能表明网站流量过大或连接无法及时释放。每秒请求数(Requests/sec):显示每秒钟收到的HTTP请求的数量。这可以帮助您了解网站的流量。匿名用户/秒(Ano......