1 题目描述

2 解题思路

由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。

由于链表的头节点可能会被删除,因此我们需要额外使用一个哨兵指向链表的头节点。

具体地,我们从指针tmp指向链表的哑节点,随后开始对链表进行遍历。如果当前 tmp.next 与 tmp.next.next 对应的元素相同,那么我们就需要将tmp.next 以及所有后面拥有相同元素值的链表节点全部删除。我们记下这个元素值 x,随后不断将tmp.next 从链表中移除,直到 tmp.next 为空节点或者其元素值不等于 x 为止。此时,我们将链表中所有元素值为 x 的节点全部删除。

如果当前 tmp.next 与tmp.next.next 对应的元素不相同,那么说明链表中只有一个元素值为 tmp.next 的节点,那么我们就可以将 tmp指向 tmp.next。

当遍历完整个链表之后,我们返回链表的的哑节点的下一个节点 ret.next 即可。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def deleteDuplicates(self, head: ListNode) -> ListNode:tmp=ListNode(0,head)ret=tmpwhile(tmp.next!=None and tmp.next.next!=None):if(tmp.next.val!=tmp.next.next.val):tmp=tmp.nextelse:tmp_val=tmp.next.valwhile(tmp.next and tmp.next.val==tmp_val):tmp.next=tmp.next.nextreturn(ret.next)

文巾解题 82. 删除排序链表中的重复元素 II相关推荐

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

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

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

    难度:中等 频次:77 题目:给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 . 解题思路: 一次遍历 注意: 遍历时候,如果两个节点 ...

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

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

  4. LeetCode 82. 删除排序链表中的重复元素 II(链表)

    1. 题目 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出 ...

  5. python删除链表重复节点_LeetCode-python 82.删除排序链表中的重复元素 II

    题目链接 难度: 中等       类型:链表 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例1 输入: 1->2->3->3-> ...

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

    题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 样例 示例 1:输入: 1->2->3->3->4->4->5 输 ...

  7. 82. 删除排序链表中的重复元素 II(链表操作)

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1-&g ...

  8. leetcode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)

    目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3-& ...

  9. Leetcode 82. 删除排序链表中的重复元素 II (每日一题 20210908)

    存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字.返回同样按升序排列的结果链表.示例 1:输入:head = ...

最新文章

  1. 爱奇艺拟发行5亿美元可转换优先债券
  2. xStream完美转换XML、JSON
  3. Spring3 MVC Login Interceptor(Spring 拦截器)
  4. apache 工作模式prefork进程模式和worker线程模式参式详解和推荐设置
  5. 编译器错误 CS1026
  6. python中空字符串的布尔值是什么_Python的布尔值与空值
  7. DSP定点与浮点计算
  8. 年夜饭之 -- 辣椒炒圣子
  9. HTML5重要知识点整理
  10. 集成Slice2Java插件
  11. 浙江高考计算机专业要选什么课,浙江省新高考7选3选课指南发布 七选三技巧解读...
  12. 如何用java编写五子棋_java编写五子棋
  13. python xlsxwriter dict_Python玩转Excel神器xlsxwriter详解
  14. 侯圣文大数据体验课笔记,大数据基础,离线数仓,实时计算
  15. 4418GPIO口调用过程
  16. C++20 latch
  17. git restore 和 git restore --staged 的区别
  18. 计算机网络c类网络划分子网介绍,IP地址的子网划分详解
  19. 微机原理第五章 存储器
  20. Flink(60):Flink中通用ModelUtil工具类

热门文章

  1. linux 添加用户
  2. txt文件分解为固定条数的文件
  3. HDOJ 4883 TIANKENG’s restaurant
  4. Android学习笔记26:图片切换控件ImageSwitcher的使用
  5. 802.11协议中的action帧的使用
  6. PAT甲级1094 The Largest Generation:[C++题解]邻接表存树、每层节点数量、vector模拟bfs层序遍历、bfs另类实现
  7. php如何同设备连接不上,一个账号同时只能在同一个设备上登陆
  8. python load_Python实例:numpy.load()的使用
  9. 扫描仪图标无法显示计算机,win7“我的电脑”中不显示扫描仪和摄像头的原因和解决方法...
  10. c++基础——程序流程结构之选择结构