[豪の算法奇妙冒险] 代码随想录算法训练营第三天 | 203-移除链表元素、707-设计链表、206-反转链表

news/2025/11/21 19:02:44/文章来源:https://www.cnblogs.com/SchwarzShu/p/19254179

代码随想录算法训练营第三天 | 203-移除链表元素、707-设计链表、206-反转链表


LeetCode203 移除链表元素

题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/

文章讲解:https://programmercarl.com/0203.移除链表元素.html

视频讲解:https://www.bilibili.com/video/BV18B4y1s7R9/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 引入虚拟头节点,这样可以使用一套规则去删除链表中节点,处理起来更加方便

​ 如果是C++还得额外考虑内存回收,但我用的是Java,虚拟机自动回收内存hh

image-20251121152717416

class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dummyHead = new ListNode(0,head);ListNode p = dummyHead;while(p.next != null){if(p.next.val == val){p.next = p.next.next;}else{p = p.next;}}return dummyHead.next;}
}

LeetCode707 设计链表

题目链接:https://leetcode.cn/problems/design-linked-list/description/

文章讲解:https://programmercarl.com/0707.设计链表.html

视频讲解:https://www.bilibili.com/video/BV1FU4y1X7WD/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 做这种涉及到指针的题目,要时刻明确当前状态下指针到了什么位置,注意细节和合法范围条件,小心在一些细小的地方出错(比如>和>=)

image-20251121185130004

class MyLinkedList {class Node{int val;Node next;public Node(){}public Node(int val, Node next){this.val = val;this.next = next;}}Node dummyHead;int size;public MyLinkedList() {size = 0;dummyHead = new Node(0, null);}public int get(int index) {if(index < 0 || index >= size){return -1;}Node cur = dummyHead;for(int i = 0;i <= index;i++){cur = cur.next;}return cur.val;}public void addAtHead(int val) {Node newNode = new Node(val, dummyHead.next);dummyHead.next = newNode;size++;}public void addAtTail(int val) {Node cur = dummyHead;while(cur.next != null){cur = cur.next;}Node newNode = new Node(val, null);cur.next = newNode;size++;}public void addAtIndex(int index, int val) {if(index < 0 || index > size){return;}Node cur = dummyHead;Node pre = null;for(int i = 0;i <= index;i++){pre = cur;cur = cur.next;}Node newNode = new Node(val, cur);pre.next = newNode;size++;}public void deleteAtIndex(int index) {if(index < 0 || index >= size){return;}Node cur = dummyHead;Node pre = null;for(int i = 0;i <= index;i++){pre = cur;cur = cur.next;}pre.next = cur.next;size--;}
}

LeetCode206 反转链表

题目链接:https://leetcode.cn/problems/reverse-linked-list/description/

文章讲解:https://programmercarl.com/0206.翻转链表.html

视频讲解:https://www.bilibili.com/video/BV1nB4y1i7eL/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 采用双指针的思路,cur指向当前节点,pre指向上一个节点,temp指向下一个节点,仔细画画图分析遍历过程,还是很清晰的

image-20251121171812263

class Solution {public ListNode reverseList(ListNode head) {ListNode cur = head;ListNode pre = null;while(cur != null){ListNode temp = cur.next;cur.next = pre;pre = cur;cur = temp;}return pre;}
}

​ 依照双指针解法的思路,还可以使用递归解决此问题:

image-20251121172636025

class Solution {public ListNode reverse(ListNode cur, ListNode pre){if(cur == null){return pre;}ListNode temp = cur.next;cur.next = pre;return reverse(temp, cur);}public ListNode reverseList(ListNode head) {return reverse(head, null);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/972464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年11月北京/东城区/西城区/朝阳区/海淀区/丰台区/石景山区遗产继承律师,遗产咨询律所Top10专业推荐排行权威榜单

2025年遗产继承法律行业持续增长,随着人口老龄化和财富积累,需求显著上升。本文基于行业数据、用户口碑和专业评估,为您提供2025年11月遗产继承律师律所Top10推荐榜单,帮助您快速找到靠谱服务。榜单包含详细排名、…

2025年11月北京/东城区/西城区/朝阳区/海淀区/丰台区/石景山区遗产继承、遗产纠纷,遗产咨询律师事务所权威排行榜单:专业律所推荐与选择指南

摘要 2025年遗产继承法律服务行业呈现专业化、精细化发展趋势,随着人口老龄化加剧和财富传承需求增长,北京地区遗产继承案件数量年均增长15%以上。本文基于权威数据、用户口碑和行业专家评估,为您提供2025年11月最具…

目前需要我去更新的东西

trick选记 atc/cf vp joist/joisc 选做 数论 杭电选做

南屏晚钟

我匆匆地走入森林中 森林它一丛丛 我找不到他的行踪 只看到那树摇风 我匆匆地走入森林中 森林它一丛丛 我看不到他的行踪 只听到那南屏钟 南屏晚钟 随风飘送 它好象是敲呀敲在我心坎中 南屏晚钟 随风飘送 它好象是催呀…

Linux初级命令练习:通过awk、sed如何批量创建用户

批量创建用户test01-test10方法1.使用awk 创建test01---test05第一步:第二步:第三步:第四步:查看结果方法2.使用sed 创建test06---test10第一步:第二步:第三步:查看结果

详细介绍:压缩与缓存调优实战指南:从0到1根治性能瓶颈(四)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

sqli-labs 1(Less-1-Less-10)新手解题思路 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

PyMAF 2023 单张照片估计参数化人体

https://github.com/HongwenZhang/PyMAF/tree/smplx

实用指南:【设计模式】适配器模式(Adapter)

实用指南:【设计模式】适配器模式(Adapter)2025-11-21 18:33 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …

完整教程:【人工智能】神经网络的优化器optimizer(四):Adam自适应动量优化器

完整教程:【人工智能】神经网络的优化器optimizer(四):Adam自适应动量优化器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

轻松速通:TTS播放、文件播放与录音的核心功能解析!

无论是开发语音助手、音频播放器,还是录音工具,TTS播放、文件播放与录音都是绕不开的核心功能。本文提炼核心流程,帮你跳过冗余细节,快速掌握这三大功能的核心实现逻辑。 一、概述 本文档详细介绍了基于 Air8000 开…

2025 中国法兰阀门十大品牌推荐:密封升级 + 场景适配,优质厂家护航流体系统安全

法兰阀门作为管道连接中的核心部件,凭借连接牢固、密封性能好的优势,广泛应用于石油化工、市政工程、能源电力、船舶制造等众多领域。2025 年,随着工业生产规模扩大与民生基建升级,市场对法兰阀门的密封可靠性、耐…

FPGA专用CLKUSR时钟引脚严重警告——Cyclone 10 GX

FPGA专用CLKUSR时钟引脚严重警告——Cyclone 10 GXCyclone 10 gx器件 使用Cyclone 10 gx器件时,由于把硬件给的管脚tcl脚本拉到工程里面了,编译后发现一个Critical Warning如下Critical Warning(18326): The design …

OPCUA探讨(五)——客户端代码解读:监控变量值与报警

本系列文章: OPCUA 探讨(一)——测试与开发环境搭建 OPCUA 探讨(二)——服务器节点初探 OPCUA 探讨(三)——客户端代码解读:基本配置与会话连接 OPCUA 探讨(四)——客户端代码解读:浏览服务器节点树 OPCUA …

2025 年度中国截止阀十大品牌推荐:绿色智造 + 特种工况突破,引领行业高质量发展

2025 年,随着 “双碳” 战略深入推进与高端制造业升级,截止阀作为流体系统的 “控制中枢”,其应用场景正加速向大口径、高压力、超低温、耐腐蚀等苛刻工况延伸,同时绿色智造、数字化运维与全生命周期质量管控成为行…

修改DTS适配遥控用户码

在将该DTS文件提交到Kernel后,若需适配遥控用户码,需修改 红外遥控(remote-controller)相关节点配置,具体对应DTS中的 pwm@ff420030 节点(RK3399常见红外遥控驱动节点),以下是具体修改位置及步骤: 一、定位需…

nginx性能优化之tcp调优

本文分享自天翼云开发者社区《nginx性能优化之tcp调优》.作者:江****禄 nginx在tcp连接上有2个如下配置:tcp_nodelay on , tcp_nopush off。这两个配置在tcp连接中的具体原理如何呢?在网络拥塞控制领域,我们知道有…

2025年11月安徽聚乙烯瓶、高阻隔瓶、聚酯瓶、农药瓶供应商排行榜:安徽金汇龙包装领跑行业

摘要 2025年农药包装行业迎来技术升级浪潮,随着环保政策收紧和智能制造的推进,农药瓶供应商面临新的机遇与挑战。本文基于市场调研数据和技术参数分析,为您呈现2025年11月农药瓶供应商综合排名,并提供详细对比表单…

2025年11月中国/安徽/聚乙烯瓶、高阻隔瓶、聚酯瓶、农药瓶厂家TOP10推荐:安徽金汇龙包装强势登顶

摘要 随着农药包装行业标准化进程加速,2025年聚乙烯瓶市场需求持续增长,行业技术门槛显著提升。本文基于生产工艺、质量控制、研发能力等维度,对全国聚乙烯瓶生产企业进行综合评估,为农药生产企业提供供应商选择参…