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

【LeetCode每日一题】:移除链表元素

🔥个人主页:Cx330🌸

❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》

🌟心向往之行必能至


🎥Cx330🌸的简介:


目录

题目链接:

题目描述:

示例:

思路:

图解:

代码实现:

复杂度分析:


题目链接:

203.移除链表元素-力扣(LeetCode)

题目描述:

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

示例:

思路:

当头节点(新定义为prev)不为空时,进行遍历,此时再定义一个头尾节点(不在原链表基础上进行删改)

当头节点的val不是要删除的,直接进行尾插操作,如果判断链表为空(newHead==NULL),此时就让新头节点(newHaed)=新尾节点(NewTail)=prev,如果链表非空,prev的val直接尾插在尾节点的下一个节点,此时再让尾节点向后走一个节点即可,判断一个节点过后就可以让prev向后走一个节点再次进行上述判断,最后当prev为空,跳出循环,判断为尾节点不为空,就说明链表不为空,要将尾节点的下一个节点置为NULL,最后返回newHead即可

图解:

代码实现:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) 
{ListNode*newHead,*newTail;newHead=newTail=NULL;ListNode*prev=head;while(prev){//判断prev节点是否为valif(prev->val!=val){//尾插if(newHead==NULL){//链表为空newHead=newTail=prev;}else{//链表非空newTail->next=prev;newTail=newTail->next;}}prev=prev->next;}if(newTail)newTail->next=NULL;return newHead;}

复杂度分析:

时间复杂度:O(N)


完整代码源:

【CPP知识学习仓库】 - Gitee.com

往期回顾:

【数据结构初阶】--双向链表(一)

【数据结构初阶】--双向链表(二)

总结:这道题运用到了数据结构——链表,相关链表的结构在之前数据结构初阶的学习中就已经给大家讲解过了,大家可以翻看之前的博客进行回顾总结,如果文章对你有帮助的话,欢迎评论,点赞,收藏加关注,感谢大家的支持。

最后送大家一句话来警醒自己:算法能力不是一蹴而就,而是通过一朝一夕的坚持刷题而积累的!


文章转载自:

http://E3wM8OvZ.jxscp.cn
http://EjWldRAr.jxscp.cn
http://tGaitiVI.jxscp.cn
http://TKN8cctx.jxscp.cn
http://JhP9vKag.jxscp.cn
http://8FkowcvQ.jxscp.cn
http://nxLNWSPJ.jxscp.cn
http://IJtCR5qr.jxscp.cn
http://MUmNcsWq.jxscp.cn
http://1Zgh475r.jxscp.cn
http://1LBl1jwa.jxscp.cn
http://ntQGORpP.jxscp.cn
http://x4NffuBR.jxscp.cn
http://eMt62guk.jxscp.cn
http://CfDHYet3.jxscp.cn
http://OldDPEzQ.jxscp.cn
http://76yPBiH9.jxscp.cn
http://S2r2UFj7.jxscp.cn
http://KoKjAORq.jxscp.cn
http://iSbpX5e1.jxscp.cn
http://elsYcerE.jxscp.cn
http://kbMNjqPO.jxscp.cn
http://9H4PNyDE.jxscp.cn
http://t0oJJR3y.jxscp.cn
http://5Q0XP2gv.jxscp.cn
http://68axZ59s.jxscp.cn
http://6gaRy970.jxscp.cn
http://wsNUHmIA.jxscp.cn
http://WjPFdar6.jxscp.cn
http://3b62qb5T.jxscp.cn
http://www.dtcms.com/a/387807.html

相关文章:

  • 工业大数据时代时序数据库选型指南:为何Apache IoTDB成为首选?
  • Java 中 ArrayList 与 LinkedList 的深度对比:从原理到实战选择
  • 向量检索服务 DashVector产品功能
  • Spring-Cloud-Alibaba:2023.0.1.X引起的dashscope-sdk-java依赖冲突问题
  • vue 知识点
  • 深入理解 Linux 进程调度:从策略到实现的全方位解析
  • 【技术架构】从单机到微服务:Java 后端架构演进与技术选型核心方案
  • Java异常报错: java.io.IOException: Broken pipe
  • [Linux]学习笔记系列 -- lib/kobject.c 内核对象(Kernel Object) 设备模型的核心基石
  • 专题:Python实现贝叶斯线性回归与MCMC采样数据可视化分析2实例|附代码数据
  • IEEE 802.1X和**IEEE 802.11之间的关联和作用
  • 【Linux】【底层解析向】Linux Shell 核心功能拆解:环境变量不生效原因 + $?/echo/alias 底层逻辑
  • UV紫外卤素灯太阳光模拟器的原理
  • RAG简单构建(ollama+uv+deepseek)
  • 告别冰冷AI音!B站开源IndexTTS2模型,零样本克隆+情感解耦,玩法超多!
  • pytorch中.pt和.pth文件区别
  • 目标计数(3)Object Counting: You Only Need to Look at One
  • 拖拽移动并监听点击事件
  • Hibernate 和 MyBatis差异分析
  • RAG 核心技术深度剖析:架构设计与性能优化实战指南
  • Java全栈学习笔记36
  • python 任务管理器
  • AI 驱动智能驾驶:L4 级技术落地瓶颈、车企博弈与用户信任构建
  • VS Code和Cursor扩展主机在过去5分钟内意外终止了3次问题解决方案
  • 【TestCenter】创建DHCP Server和DHCP Client
  • 内存泄漏系列专题分析之三十五:开机内存性能优化之一:Camx进程启动提前加载so库
  • 知微传感Dkam系列3D相机SDK例程篇:CSharp设置相机工作模式
  • 《华为基本法》 —— 企业发展的导航仪
  • devops平台建设-总体设计文档
  • 大数据七大业务架构横向比对分析