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

【力扣链表篇】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

解答:

1.想要删除当前节点,就需要当前节点的“前一个节点的next”等于“前一个节点的next的next”。

2.因为头节点的删除只需要head=head->next就行,和中间节点的删除方式不统一,为了统一。

3.所以使用虚头节点就可以使头节点和中间节点的删除统一起来,这样头节点也有前一个节点了:虚头节点。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {if(!head) return head;ListNode* xu = new ListNode(0,head);ListNode* cur = xu;while(cur->next!=NULL){if(cur->next->val==val){cur->next=cur->next->next;//找到值就删除当前节点}else cur=cur->next;//指向下一节点}    return xu->next;//虚头节点的下一个才是头节点}
};

http://www.xdnf.cn/news/873775.html

相关文章:

  • DIC技术助力金属管材全场应变测量:高效解决方案
  • 线程的生命周期与数量设置
  • 鸿蒙Navigation路由导航-基本使用介绍
  • SwiftUI 数据绑定与视图更新(@State、@ObservedObject、@EnvironmentObject)
  • 区块链架构深度解析:从 Genesis Block 到 Layer 2
  • 机器学习的数学基础:假设检验
  • 题海拾贝:P2347 [NOIP 1996 提高组] 砝码称重
  • 备战2025年全国青少年信息素养大赛-图形化编程挑战赛—省赛—每日一练—绘制立体图形
  • http协议,get,post两种请求方式
  • ArcGIS Pro 3.4 二次开发 - 共享
  • yoloe优化:可支持点提示进行检测分割
  • React 性能监控与错误上报
  • Dockerfile基础
  • SpringCloudAlibaba微服务架构
  • AI在网络安全领域的应用现状和实践
  • 代码训练LeetCode(21)跳跃游戏2
  • vivo y300pro 无法连接adb
  • 【算法篇】逐步理解动态规划模型4(子数组问题)
  • 【BUG解决】关于BigDecimal与0的比较问题
  • linux_centos7.x的ifconfig命令显示内容详解
  • Python 入门到进阶全指南:从语言特性到实战项目
  • rk3588 上运行smolvlm-realtime-webcam,将视频转为文字描述
  • 【映射】2024-睿抗-AcWing 5834. 谁进线下了?
  • J-Link 烧录SPI Flash
  • idea相关功能
  • [Java 基础]面向对象-封装
  • 【AI论文】VideoReasonBench:多模态大语言模型(MLLMs)能否执行以视觉为中心的复杂视频推理?
  • python基础day04
  • 算法竞赛推荐书单
  • spring-ai入门