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

Python移除链表元素-虚拟节点

题目:

203.移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

在这里插入图片描述

示例 1:

输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
示例 2:

输入:head = [], val = 1
输出:[]
示例 3:

输入:head = [7,7,7,7], val = 7
输出:[]

提示:

列表中的节点数目在范围 [0, 104] 内
1 <= Node.val <= 50
0 <= val <= 50

思路:

A.创建一个虚拟头部节点,这样能确保就算需要删除的数字为头部节点的值,也不用进行特殊处理。
B.创建一个current指针指向虚拟头部节点。
C.遍历链表,若当前current指针所指向节点的下一个节点数值为需要删除的数值,则把当前current指针的下一位指向下下个节点,直接跳过下一个节点。
如图:

D.若不是,则继续遍历剩下的链表节点。
E.遍历结束后,返回虚拟头部节点的下一位,即真实的头部节点。

代码:

class Solution:def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:# 创建虚拟头部节点dummy_head = ListNode(next = head)# 将current指针指向虚拟节点current = dummy_head# 当current指针遍历链表并删除值为val的节点while current.next:if current.next.val == val:current.next = current.next.nextelse:current = current.nextreturn dummy_head.next

相关文章:

  • 银行虚拟网站制作百度一下知道官网
  • 网站开发学什么比较有优势软件开发工具
  • 做seo要明白网站内世界足球排名前十名
  • 网站建设验收内容海城seo网站排名优化推广
  • 常州网站建设包括哪些免费的seo教程
  • 服务器用来做网站空间seo顾问服务 乐云践新专家
  • 植物小知识
  • [密码学实战]商密TLCP协议抓包解析与深度分析(二十九)
  • 云原生周刊:Argo CD v3.1 正式发布
  • git学习资源
  • 大模型时代的创业机遇
  • Linux 网络命名空间的奥秘:深入解析struct net与内核模块编译陷阱
  • Redis 分布式锁原理与实战-学习篇
  • DeepSeek智能总结 | 邓紫棋音乐版权纠纷核心梳理
  • Vue3+Spring boot 前后端防抖增强方案
  • 3.0 compose学习:MVVM框架+Hilt注解调用登录接口
  • 领域驱动设计(DDD)【9】之代码初始部分实现和问题解决
  • 仓颉语言语法特点、使用范围、编译及环境搭建:从零开始第一个cangjie程序
  • 变电站自动化系统有哪些设备?
  • 如何通过FEMFAT许可证进行数据分析和处理
  • lz4库使用
  • 洛谷P1092 [NOIP 2004 提高组] 虫食算
  • 29.设计模式的选择与应用
  • windows 上 build 时,微软给出的 vcpkg 工具,如何使用
  • 关于数据编码、进制、位运算的详细讲解(从属GESP三级)
  • C#调用MATLAB函数