文巾解题 82. 删除排序链表中的重复元素 II
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相关推荐
- Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...
- leetcode 82. 删除排序链表中的重复元素 II
难度:中等 频次:77 题目:给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 . 解题思路: 一次遍历 注意: 遍历时候,如果两个节点 ...
- 31. Leetcode 82. 删除排序链表中的重复元素 II (链表-双指针)
给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 .示例 1:输入:head = [1,2,3,3,4,4,5] 输出:[1,2,5] ...
- LeetCode 82. 删除排序链表中的重复元素 II(链表)
1. 题目 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出 ...
- python删除链表重复节点_LeetCode-python 82.删除排序链表中的重复元素 II
题目链接 难度: 中等 类型:链表 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例1 输入: 1->2->3->3-> ...
- LeetCode 82 删除排序链表中的重复元素 II python
题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 样例 示例 1:输入: 1->2->3->3->4->4->5 输 ...
- 82. 删除排序链表中的重复元素 II(链表操作)
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1-&g ...
- leetcode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)
目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3-& ...
- Leetcode 82. 删除排序链表中的重复元素 II (每日一题 20210908)
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字.返回同样按升序排列的结果链表.示例 1:输入:head = ...
最新文章
- 爱奇艺拟发行5亿美元可转换优先债券
- xStream完美转换XML、JSON
- Spring3 MVC Login Interceptor(Spring 拦截器)
- apache 工作模式prefork进程模式和worker线程模式参式详解和推荐设置
- 编译器错误 CS1026
- python中空字符串的布尔值是什么_Python的布尔值与空值
- DSP定点与浮点计算
- 年夜饭之 -- 辣椒炒圣子
- HTML5重要知识点整理
- 集成Slice2Java插件
- 浙江高考计算机专业要选什么课,浙江省新高考7选3选课指南发布 七选三技巧解读...
- 如何用java编写五子棋_java编写五子棋
- python xlsxwriter dict_Python玩转Excel神器xlsxwriter详解
- 侯圣文大数据体验课笔记,大数据基础,离线数仓,实时计算
- 4418GPIO口调用过程
- C++20 latch
- git restore 和 git restore --staged 的区别
- 计算机网络c类网络划分子网介绍,IP地址的子网划分详解
- 微机原理第五章 存储器
- Flink(60):Flink中通用ModelUtil工具类
热门文章
- linux 添加用户
- txt文件分解为固定条数的文件
- HDOJ 4883 TIANKENG’s restaurant
- Android学习笔记26:图片切换控件ImageSwitcher的使用
- 802.11协议中的action帧的使用
- PAT甲级1094 The Largest Generation:[C++题解]邻接表存树、每层节点数量、vector模拟bfs层序遍历、bfs另类实现
- php如何同设备连接不上,一个账号同时只能在同一个设备上登陆
- python load_Python实例:numpy.load()的使用
- 扫描仪图标无法显示计算机,win7“我的电脑”中不显示扫描仪和摄像头的原因和解决方法...
- c++基础——程序流程结构之选择结构