( 链表) 203. 移除链表元素 ——【Leetcode每日一题】

news/2025/2/18 11:59:56/

❓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 , 1 0 4 ] [0, 10^4] [0,104]
  • 1 <= Node.val <= 50
  • 0 <= val <= 50

💡思路:

添加一个虚拟头结点,可以统一化处理!

🍁代码:(Java、C++)

Java

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {ListNode h = new ListNode();h.next = head;head = h;while(h.next != null){if(h.next.val == val){h.next = h.next.next;}else{h = h.next;}}return head.next;}
}

C++

/*** 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) {ListNode* h = new ListNode();h->next = head;head = h;while(h->next != nullptr){if(h->next->val == val){h->next = h->next->next;}else{h = h->next;}}h = head->next;delete head;return h;}
};

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n ) O(n) O(n),其中 n 为链表的长度。需要遍历链表一次。
  • 空间复杂度 O ( 1 ) O(1) O(1)

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

注: 如有不足,欢迎指正!


http://www.ppmy.cn/news/88439.html

相关文章

GameFramework框架详解之 FileSystem虚拟文件系统

一.前言 GameFramework是一个功能非常完整,结构非常合理的游戏框架,不仅适合实际开发使用,更适合通过它的源码来学习,我个人觉得GF框架中很多东西让我受益匪浅,之前也介绍过它的其他模块。 今天我们来着重介绍一下它的FileSystem虚拟文件系统,GF的虚拟文件系统,使用类似…

实在智能魅力抢眼!携超自动化解决方案和校企合作新范式点燃第七届世界智能大会

为深入实施创新驱动发展战略&#xff0c;推动智能科技赋能经济社会发展&#xff0c;促进校企双方交换需求清单&#xff0c;全方位搭建校企握手通道&#xff0c;5月18日&#xff0c;由国家发展和改革委员会、科学技术部、国家广播电视总局、中国科学院等联合主办的第七届世界智能…

用Vue简单开发一个学习界面

文章目录 一.首先创建我们的Vue文件夹二.源代码BodyDemoHearderDemoHomeDemoMarkdownDemoFileManager.jsMain.js&#xff08;注意绑定&#xff09;APP源代码 效果图&#xff08;按钮功能&#xff09;新增二级菜单&#xff08;v-for&#xff09;需要的可以私信 一.首先创建我们的…

rails中--a链接的使用

在Rails中创建a链接&#xff0c;需要使用link_to方法。该方法的语法为&#xff1a; link_to(body, url, options {}) 其中&#xff0c;body参数指定链接的显示文本&#xff0c;url参数指定链接的目标地址&#xff0c;options参数为可选项&#xff0c;用于指定链接的其他属性…

广域通信网 - HDLC 高级数据链路控制协议

文章目录 1 概述2 HDLC2.1 帧类型2.2 帧结构 3 扩展3.1 网工软考真题 1 概述 #mermaid-svg-JEuFH1qP4tY5jI5p {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JEuFH1qP4tY5jI5p .error-icon{fill:#552222;}#mermaid-…

基于遗传算法和非线性规划的函数寻优算法(matlab实现)

以下内容大部分来源于《MATLAB智能算法30个案例分析》&#xff0c;仅为学习交流所用。 1 理论基础 1.1 非线性规划 非线性规划是20世纪50年代形成的一门新兴学科。1951年库恩和塔克发表的关于最优性条件(后来称为库恩塔克条件)的论文是非线性规划诞生的标志。非线性规划研究…

郑州市元宇宙产业发展实施方案发布,中创助力元宇宙创新建设!

如果说2022年的“元宇宙”赛道&#xff0c;尚是以Meta为首&#xff0c;而今&#xff0c;政府也纷纷参与其中。 数据显示截至目前&#xff0c;国内已有至少30个地区&#xff08;涉及10个省级行政区&#xff09;颁布了元宇宙相关的支持性政策或征求意见稿&#xff0c;政策文件名中…

MATLAB算法实战应用案例精讲-【数模应用】主效应交互效应单独效应

前言 在多因素实验研究中,主效应就是在考察一个变量是否会对因变量的变化发生影响的时候,不考虑其他研究变量的变化,或者说将其他变量的变化效应平均掉。换句话说,就是其他研究变量都不变化的情况下,单独考察一个自变量对因变量的变化效应。 交互效应,则是反映两个或两个…