代码随想录算法训练营第3天 | 203.移除链表元素、707. 设计链表、206.反转链表
代码随想录算法训练营第2天 | 203.移除链表元素、707. 设计链表、206.反转链表203.移除链表元素题目描述解题思路解题过程707. 设计链表题目描述解题思路解题过程206.反转链表题目描述解题思路解题过程203.移除链表元素题目链接203.移除链表元素题目描述解题思路单链表删除结点的操作可以分为两种情况一种是删除头结点一种是其他结点。若要删头结点需要先使用一个临时结点将头结点改变成下一个结点再释放。非头结点就只需要遍历链表找到需要删除的结点进行删除即可。另一种设置虚拟头结点的方式就可以不用判断是否是头结点还是非头结点。删除链表的操作是将前一个结点的指针指向第二个结点。解题过程// 一般删除办法/** * 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) {} * }; */classSolution{public:ListNode*removeElements(ListNode*head,intval){while(head!nullptrhead-valval){ListNode*tmphead;headhead-next;deletetmp;}ListNode*curhead;while(cur!nullptrcur-next!NULL){if(cur-next-valval){ListNode*tmpcur-next;cur-nextcur-next-next;deletetmp;}elsecurcur-next;}returnhead;}};// 虚拟头结点classSolution{public:ListNode*removeElements(ListNode*head,intval){ListNode*dumynewListNode(0);dumy-nexthead;ListNode*curdumy;while(cur-next!nullptr){if(cur-next-valval){ListNode*tmpcur-next;cur-nextcur-next-next;deletetmp;}elsecurcur-next;}headdumy-next;deletedumy;returnhead;}};707. 设计链表题目链接707. 设计链表题目描述解题思路对于链表的完整构建与操作。解题过程classMyLinkedList{public:structListNode{intval;ListNode*next;ListNode(intval):val(val),next(nullptr){}};MyLinkedList(){_dumynewListNode(0);_size0;}intget(intindex){if(index(_size-1)||index0)return-1;ListNode*cur_dumy-next;while(index--){curcur-next;}returncur-val;}voidaddAtHead(intval){ListNode*newNodenewListNode(val);newNode-next_dumy-next;_dumy-nextnewNode;_size;}voidaddAtTail(intval){ListNode*newNodenewListNode(val);ListNode*cur_dumy;while(cur-next!nullptr){curcur-next;}cur-nextnewNode;_size;}voidaddAtIndex(intindex,intval){if(index_size)return;if(index0)index0;ListNode*newNodenewListNode(val);ListNode*cur_dumy;while(index--){curcur-next;}newNode-nextcur-next;cur-nextnewNode;_size;}voiddeleteAtIndex(intindex){if(index_size||index0)return;ListNode*cur_dumy;while(index--){curcur-next;}ListNode*tmpcur-next;cur-nextcur-next-next;deletetmp;tmpnullptr;_size--;}private:ListNode*_dumy;int_size;};/** * Your MyLinkedList object will be instantiated and called as such: * MyLinkedList* obj new MyLinkedList(); * int param_1 obj-get(index); * obj-addAtHead(val); * obj-addAtTail(val); * obj-addAtIndex(index,val); * obj-deleteAtIndex(index); */206.反转链表题目链接206.反转链表题目描述解题思路首先定义一个cur指针指向头结点再定义一个pre指针初始化为null。然后就开始反转首先要把 cur-next 节点用tmp指针保存一下也就是保存一下这个节点然后将cur - next 指向pre再移动pre和cur指针向前移动。当cur指向空到达结束点。解题过程/** * 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) {} * }; */classSolution{public:ListNode*reverseList(ListNode*head){ListNode*temp;ListNode*curhead;ListNode*preNULL;while(cur){tempcur-next;cur-nextpre;precur;curtemp;}returnpre;}};

相关新闻

ARM处理器指令系统——概述

ARM处理器指令系统——概述

本文声明:内容来源于网络,进行整合/再创作;部分内容由AI辅助生成。Tips:指令系统也属于ARM处理器架构模型的一部分,因内容较多,同时为了便于知识管理,单独将“指令系统”作为大标题的开头。需要…

2026/5/17 4:35:54 阅读更多 →
碳能系统优化调度与需求响应及奖惩阶梯式考虑

碳能系统优化调度与需求响应及奖惩阶梯式考虑

考虑需求响应和奖惩阶梯式碳的综合能源系统优化调度咱们今天聊点硬核的——怎么让能源系统在碳减排和经济效益之间找到最优解。这事儿就像在玩平衡木,左边是电价波动带来的需求响应压力,右边是阶梯式碳价这把悬在头顶的达摩克利斯之剑。别慌,…

2026/7/4 15:23:52 阅读更多 →
竞赛中常用的C++STL用法

竞赛中常用的C++STL用法

目录 ​一、核心容器 1. 序列式容器 (1) vector(动态数组) (2) string(字符串) 2. 关联式容器 (1) map/unordered_map(键值对) (2) set/unordered_set(集合) 3. 容器适配器&a…

2026/5/17 10:23:46 阅读更多 →

最新新闻

JWT 在线解码、验签、生成一篇讲透:附前端实现、工具架构与在线体验地址

JWT 在线解码、验签、生成一篇讲透:附前端实现、工具架构与在线体验地址

为什么后端说签名不对?HS256、RS256、ES256、PS256 到底怎么切?公钥私钥是 PEM 还是 JWK,到底该贴哪种?改了 payload 之后,怎么重新生成一个能用的 JWT?所以这篇不只讲 JWT 原理,我会直接结合这…

2026/7/5 2:22:35 阅读更多 →
强烈建议收藏!全网首发Andrey Karpathy的AI循环工作流(附复现Prompt)

强烈建议收藏!全网首发Andrey Karpathy的AI循环工作流(附复现Prompt)

循环工程:卡帕西方法——以及使其效率提升 5 倍的工作流程 大多数人使用人工智能的方式与 2005 年使用谷歌的方式相同。输入一些内容,阅读返回结果,然后再输入一次。AI 会一直待在那里什么也不做,直到你推动它—— 你就是引擎 ——…

2026/7/5 2:22:35 阅读更多 →
全友家居(邳州旗舰店)vs 大博金沙发厂多维度对比测评——品牌专卖店与源头工厂谁更值得买?

全友家居(邳州旗舰店)vs 大博金沙发厂多维度对比测评——品牌专卖店与源头工厂谁更值得买?

摘要 核心结论:在2026年邳州家具消费市场中,大博金沙发厂在全屋配套场景下的综合性价比(三室两厅配齐全屋家具总价约1.6万-2万元,较品牌专卖店低40%-60%)和交付效率(成品现货当天提货)上显著优…

2026/7/5 2:20:35 阅读更多 →
终极ComfyUI TensorRT插件指南:3-10倍AI绘画加速,释放你的RTX显卡潜能

终极ComfyUI TensorRT插件指南:3-10倍AI绘画加速,释放你的RTX显卡潜能

终极ComfyUI TensorRT插件指南:3-10倍AI绘画加速,释放你的RTX显卡潜能 【免费下载链接】ComfyUI_TensorRT 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_TensorRT 你是否厌倦了漫长的AI图像生成等待时间?每次创作都要盯着进…

2026/7/5 2:18:34 阅读更多 →
YOLO11视频目标检测实战:从环境配置到高级应用

YOLO11视频目标检测实战:从环境配置到高级应用

1. 项目概述 视频目标检测是计算机视觉领域的重要应用场景,而YOLO系列模型因其出色的实时性能成为该任务的首选方案。本文将基于YOLO11模型,详细讲解如何实现视频文件的逐帧检测,并输出带有检测框的可视化视频。 提示:YOLO11是YO…

2026/7/5 2:16:34 阅读更多 →
程序员就业:2026 年还能靠什么拿到,把工具链跑成稳定流程

程序员就业:2026 年还能靠什么拿到,把工具链跑成稳定流程

聊《程序员就业:2026 年还能靠什么拿到,把工具链跑成稳定流程》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要这篇面向准备找工作、跳槽或转型的程序员,但不会把“程序员就业…

2026/7/5 2:16:34 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻