news 2026/4/24 23:10:34

20天速通LeetCodeday09:关于链表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
20天速通LeetCodeday09:关于链表

前言

今日练习目的:掌握如何遍历链表,以及改变节点的next指向。

206:反转链表

题目要求:给定一个单链表的头节点head
要求:反转链表,并返回反转后的链表

核心思路

使用三个指针:

prev:当前节点的前一个节点
cur :当前正在处理的节点
next:临时保存 cur 的下一个节点

代码实现

classSolution{publicListNodereverseList(ListNodehead){ListNodeprev=null;ListNodecur=head;while(cur!=null){ListNodenext=cur.next;// 保存下一个节点cur.next=prev;// 反转指针prev=cur;// prev 前进cur=next;// cur 前进}returnprev;}}

总结

掌握链表的语法:listNode prev=null

203:移除链表元素

题目要求:给定一个链表头节点head和一个值val。
要求:删除链表中所有等于val的节点,并返回head

核心思路

引入虚拟头节点dummy,防止第一个元素就是需要被删除元素

遍历的逻辑:

如果 cur.next.val == val:
删除 cur.next
否则:
cur 向后移动

代码实现

classSolution{publicListNoderemoveElements(ListNodehead,intval){// 虚拟头节点ListNodedummy=newListNode(0);dummy.next=head;ListNodecur=dummy;while(cur.next!=null){if(cur.next.val==val){cur.next=cur.next.next;// 删除节点}else{cur=cur.next;// 移动指针}}returndummy.next;}}

总结

掌握虚拟头节点的创建:ListNode dummy=new ListNode(0); dummy.next=head
遍历的逻辑
返回dummy的语法:return dummy.next

21:合并两个有序链表

题目要求:给定两个升序排列的链表list1和list2
要求:将他们合并成一个新的升序链表并返回

核心思路

双指针+虚拟头节点
将两个链表取出元素进行比较并拼接
最后将剩余链表拼接

代码实现

ListNodedummy=newListNoed(0);ListNodecur=dummy;ListNodep1=list1;ListNodep2=list2;while(p1!=null&&p2!=null){if(p1.val<p2.val){cur=p1.val;p1=p1.next;}else{cur=p2.next;p2=p2.next;}cur=cur.next;}//拼接剩余if(p1!=null){cur=p1;}else{cur=p2;}returndummy.next;

总结

要求做到升序链表,想到用双指针来判断头节点的大小
用剩余链表直接收尾

2:两数相加

题目要求:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头

核心思路

代码实现

ListNodedummy=newListNode(0);ListNodecur=dummy;intcarry=0;while(l1!=null||l2!=null||carry!=0){intsum=carry;if(l1!=null){sum+=l1.val;l1.l1.next;}if(l2!=null){sum+=l2.val;l2=l2.next;}carry=sum/10;cur.next=newListNode(sum%10);cur=cur.next;}returndummy.next;

总结

本题的核心是:链表逐位相加 + 进位 carry
核心三要素

  1. sum = l1 + l2 + carry
  1. 当前位 = sum % 10
  2. carry = sum / 10
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 23:06:22

3分钟解锁音乐自由:ncmdump让你彻底告别网易云NCM格式限制

3分钟解锁音乐自由&#xff1a;ncmdump让你彻底告别网易云NCM格式限制 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 想象一下这样的场景&#xff1a;你在网易云音乐精心收藏了上百首心爱的歌曲&#xff0c;准备在长途旅行中享受音…

作者头像 李华
网站建设 2026/4/24 23:03:22

别墅装新风,全屋还是局部?一个踩过坑的从业者聊聊我的判断

去年年底&#xff0c;在给一个三层带地下室的独栋做系统复检的时候&#xff0c;业主指着刚装好的新风主机和满屋子的管道&#xff0c;问了我一个问题&#xff1a;这玩意儿&#xff0c;真有必要每层楼、每个房间都通上吗&#xff1f;光是这些管道和开孔&#xff0c;就加了不少预…

作者头像 李华
网站建设 2026/4/24 23:01:31

别再为GDAL编译踩坑了!Win11下用CMake 3.26.3编译TIFF 4.5.0的保姆级避坑指南

Win11下CMake编译TIFF 4.5.0全流程实战&#xff1a;从环境配置到疑难解析 在Windows平台进行C库的源码编译&#xff0c;往往是一场与系统环境、工具链版本和依赖关系的博弈。特别是对于地理信息系统(GIS)和图像处理领域的开发者而言&#xff0c;TIFF库作为GDAL等核心工具的基础…

作者头像 李华
网站建设 2026/4/24 23:00:22

【深度】谷歌代码75%由AI生成、OpenAI发布7×24工作流智能体、Anthropic定价风波一日内撤回——2026年4月23日,AI编程的“分水岭”

2026年4月23日&#xff0c;AI编程领域迎来了今年以来最具标志性的一天。 如果把今天的几条重磅新闻放在一起看&#xff0c;一幅清晰的图景就会浮现出来&#xff1a;谷歌内部75%的代码已由AI生成&#xff0c;OpenAI发布了能在云端724小时自主运行的工作流智能体&#xff0c;而在…

作者头像 李华
网站建设 2026/4/24 23:00:19

大厂面试必考:RAG 怎么答才能让面试官觉得你“深不可测”?

最近和几个在阿里、美团做大模型应用的朋友聊天&#xff0c;发现现在面试 AI 工程师或者架构师&#xff0c;RAG&#xff08;检索增强生成&#xff09; 几乎是必考题。很多人回答 RAG 流程时&#xff0c;往往只会说&#xff1a;“不就是先检索、后生成吗&#xff1f;” 如果你这…

作者头像 李华