代码随想录-刷题第五天

链表题目总结

链表基本操作

对链表进行增删改查等基本操作。注意,很多链表的题目使用虚拟头结点 操作起来会更加方便。每次对应头结点的情况都要单独处理,所以使用虚拟头结点的技巧,就可以解决这个问题

反转链表

可以使用头插法 ,也可以直接修改节点的指向(这种思想有两种实现方法,迭代和递归)

删除倒数第n个节点

采用虚拟头结点和双指针的思想,可以一次遍历就找到要删除的节点。

链表相交

如果用两个指针 p1p2 分别在两条链表上前进,我们可以让 p1 遍历完链表 A 之后开始遍历链表 B,让 p2 遍历完链表 B 之后开始遍历链表 A,这样相当于「逻辑上」两条链表接在了一起。如果这样进行拼接,就可以让 p1p2 同时进入公共部分,也就是同时到达相交节点 c1

环形链表

定义快慢指针,慢指针每次走1步,快指针每次走2步。首先判断是否有环,如果有环的话,快指针一定先进环,慢指针进环后第一圈快慢指针一定相遇 ,没有环的话返回null。如果相遇,再定义两个指针一个从相遇的节点开始,一个从第一个节点开始,每次都各走一步,两个指针再次相遇的时候就是入环节点。


相关推荐
平哥努力学习ing2 分钟前
《数据结构》-第八章 排序
数据结构·算法·排序算法
CoovallyAIHub2 分钟前
为AI装上“纠偏”思维链,开源框架Robust-R1显著提升多模态大模型抗退化能力
深度学习·算法·计算机视觉
benpaodeDD4 分钟前
黑马SpringBoot2自动配置原理
java·spring boot·后端
编程大师哥8 分钟前
Java web
java·开发语言·前端
小棠师姐12 分钟前
随机森林原理与实战:如何解决过拟合问题?
算法·机器学习·随机森林算法·python实战·过拟合解决
电商API_1800790524714 分钟前
大麦网API实战指南:关键字搜索与详情数据获取全解析
java·大数据·前端·人工智能·spring·网络爬虫
dasi022714 分钟前
Java 趣闻
java
C雨后彩虹15 分钟前
synchronized高频考点模拟面试过程
java·面试·多线程·并发·lock
JAVA+C语言16 分钟前
Java ThreadLocal 的原理
java·开发语言·python
lkbhua莱克瓦2423 分钟前
进阶-SQL优化
java·数据库·sql·mysql·oracle