代码随想录-刷题第五天

链表题目总结

链表基本操作

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

反转链表

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

删除倒数第n个节点

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

链表相交

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

环形链表

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


相关推荐
Sayuanni%37 分钟前
SpringBoot 从注解到源码:核心知识点总结
java·spring boot·后端
坚定信念,勇往无前31 分钟前
Maven 私有仓库-nexus
java
大熊背32 分钟前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline
一米阳光866135 分钟前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
Minner-Scrapy38 分钟前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
晚风醉蝶1 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
旖旎夜光1 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
夏天拐跑了西瓜1 小时前
Spring Cloud 微服务实战(三):一个服务挂了,凭什么拖垮整个系统?Sentinel 限流熔断实战
java·spring cloud·微服务
2601_967264282 小时前
Jetpack Compose 实践指南:从入门到进阶
java·学习
m0_587383002 小时前
社区家政系统开发实战:从需求分析到上线部署全指南
java·spring boot·spring·需求分析