当前位置: 首页 > news >正文

【LeetCode】删除排序链表中的重复元素 II

目录

  • 一、题目
  • 二、解法
  • 完整代码


一、题目

给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。

示例 1:
在这里插入图片描述

输入:head = [1,2,3,3,4,4,5]
输出:[1,2,5]
示例 2:
在这里插入图片描述

输入:head = [1,1,1,2,3]
输出:[2,3]

提示:

链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序 排列


二、解法

先遍历一边链表,利用哈希表记录每个数字出现了多少次
然后再遍历一边,跳过哪些所有出现次数超过1的节点


完整代码

# 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: Optional[ListNode]) -> Optional[ListNode]:cur = dummy = ListNode()dummy.next = headdic = {}while cur.next:dic[cur.next.val] = dic.get(cur.next.val, 0) + 1cur = cur.nextcur = dummywhile cur and cur.next:while cur and cur.next and dic[cur.next.val] > 1:cur.next = cur.next.nextcur = cur.nextreturn dummy.next

http://www.lryc.cn/news/401859.html

相关文章:

  • Pandas使用 `iloc` 和 `loc` 常见用法汇总
  • 【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器
  • Windows 32 汇编笔记(二):使用 MASM
  • 手机和电脑通过TCP传输(一)
  • Sentinel规则持久化Push模式两种实现方式
  • Spring Boot 中使用 Resilience4j 实现弹性微服务的简单了解
  • Hadoop3:MR程序压测实验
  • 初学者如何通过建立个人博客盈利
  • 构建稳健性:如何在Gradle中配置构建失败时的行为
  • 大语言模型-基础及拓展应用
  • STM32使用Wifi连接阿里云
  • 2024.7.16日 最新版 docker cuda container tookit下载!
  • 打印室预约小程序的设计
  • Android音视频—OpenGL 与OpenGL ES简述,渲染视频到界面基本流程
  • Vscode中Github copilot插件无法使用(出现感叹号)解决方案
  • Spring-cloud-openfeign-@FeignClient中的configuration属性
  • 实验七:图像的复原处理
  • 前端面试题日常练-day94 【Less】
  • c 语言 中 是否有 unsigned 安;这种写法?
  • Hive第三天
  • 【C++】模版初阶以及STL的简介
  • 51单片机学习(4)
  • 3D问界—MAYA制作铁丝栅栏(透明贴图法)
  • 编译器对C++23的支持程度
  • k8s核心操作_存储抽象_K8S中使用Secret功能来存储密码_使用免密拉取镜像_k8s核心实战总结---分布式云原生部署架构搭建033
  • 21集 ESP32-IDF开发教程-《MCU嵌入式AI开发笔记》
  • 《大数据基础》相关知识点及考点,例题
  • 网络通信介绍
  • 16、Python之容器:元组与列表、推导式与生成式,差之毫厘谬以千里
  • HTTP协议——请求头和请求体详情