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

示例 1:

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

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

就是基础的链表操作,画个图,把情况考虑周全了就好了。具体解释看代码
代码如下:

/*** 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) {ListNode* p=head;ListNode* pp=head;//设置两个指针while(p){ListNode* q=p->next;ListNode* qq=p;int flag=0;while(q){if(q->val==p->val)//每一次都设置两个指针,一前一后,这样方便修改{q=q->next;qq->next=q;flag=1;}else{q=q->next;qq=qq->next;}}if(flag==0) //如果没有找到重复元素{if(p==head)//在一开始的话{p=p->next;}else{//不在开头p=p->next;pp=pp->next;}}else{//有重复元素的话,也是分两种情况if(p==head) {head=p->next;p=head;pp=head;}else {p=p->next;pp->next=p;}}}return head;}
};

努力加油a啊,(o)/~

82. 删除排序链表中的重复元素 II(链表操作)相关推荐

  1. 31. Leetcode 82. 删除排序链表中的重复元素 II (链表-双指针)

    给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 .示例 1:输入:head = [1,2,3,3,4,4,5] 输出:[1,2,5] ...

  2. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  3. list元素求和_LeetCode刷题实战82:删除排序链表中的重复元素 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

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

    82. 删除排序链表中的重复元素 II 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字. 返回同样按升序排 ...

  5. 算法---删除排序链表中的重复元素 II

    删除排序链表中的重复元素 II 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 . 输入:head = [1,2,3,3,4,4,5] ...

  6. lintcode :Remove Duplicates from Sorted Array II 删除排序数组中的重复数字 II

    题目: 删除排序数组中的重复数字 II 跟进"删除重复数字": 如果可以允许出现两次重复将如何处理? 样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A ...

  7. vue删除数组中的一条数据_删除排序数组中的重复项 II

    删除排序数组中的重复项 II题目 给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改 ...

  8. 80. 删除排序数组中的重复项 II golang

    80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...

  9. Leecode刷题【1数组专题4】80. 删除排序数组中的重复项II (以及通用解法)

    Leecode刷题 [1数组专题4]80. 删除排序数组中的重复项II (以及通用解法) 题目: 思路 双指针法: (错误代码) 正解: 通用解法: 题目: 给你一个有序数组 nums ,请你 原地 ...

最新文章

  1. java 递归原理_Java中递归原理实例分析
  2. plsql查询数据中文乱码
  3. 如何设计一个安全对外的接口
  4. Python安装dlib包
  5. 求数组中各个元素的个数?
  6. C# WebApi Xml序列化问题解决方法:“ObjectContent`1”类型未能序列化内容类型“application/xml;charset=utf-8“的响应正文。...
  7. Python 模块,包与分发
  8. 组件三层_Java三层架构原理与作用小结
  9. 当Top-k遇到深度学习
  10. 腾讯云服务器操作系统TencentOS的正确安装方法
  11. Go语言 有缓冲通道、协程池
  12. ubuntu浏览器firefox无法播放视频
  13. macOS Mojave 10.14.6 18G103 正式版 with Clover 5091原版镜像[双EFI双平台终极版]
  14. 包过滤防火墙配置举例
  15. 【Restful接口】restful接口的两种使用方式
  16. Mathematica中用有限元方法解不规则区域上的波动方程
  17. GD32E230 ADC注入通道
  18. 团体程序设计天梯赛-练习集 L1-034 点赞
  19. 学生成绩管理java心得体会_如何用java实现学生成绩管理界面
  20. Mac拷贝文件夹路径快捷键

热门文章

  1. pythonfor循环100次_【零基础学Python】For循环和RANGE()函数
  2. 嵌入式C语言编程课件,嵌入式系统C语言编程基础PPT课件
  3. jeecgboot 弹出modal刷新主窗体_保利天汇|自然的温度,刷新园林美学天际/辽宁房产特刊...
  4. 文件夹恢复后java运行慢,eclipse中每次重新启动服务,运行环境下的文件夹或者文件被还原...
  5. 能使曲线变平滑的一维滤波器_双边滤波器的原理及实现
  6. python创建和控制的实体称为_Python语法基础
  7. 基础训练——合并电话簿
  8. 技术人应该如何投资时间?
  9. React优化性能的经验教训
  10. 以HANA为核心 SAP实时数据平台详解