关于链表【力扣19.删除链表的倒数第N个节点的思考】

目录

一、注意思想

二、本题精髓

三、关键思路

四、本题题目和代码

五、注意事项


一、注意思想

1、注意快慢指针的思想不仅可以用在数组,还可以用在链表

2、注意虚拟头节点思想

二、本题精髓

让快指针先走n+1步

三、关键思路

(加入虚拟头节点,快慢指针初始指向虚拟头节点)

1、让快指针先走n+1步

2、然后快慢指针同时向前走(fast指针为空之时,慢指针走到要删除的节点的前一个位置)

3、执行删除操作

四、本题题目和代码

五、注意事项

1、链表类的题目尽可能都用虚拟头节点(因为涉及到一些操作可能会导致当前头节点会变)

// 比如这道题如果要删倒数第5个节点,头节点就变了。

// 用虚拟头节点的话,最后直接返回虚拟头节点的下一个节点就行

//(不需要考虑是否删除的是头节点,方便操作)

2、while(n-- && fast != nullptr)只能保证fast先走n步,后面要手动多走1步

3、觉得自己思路正确,但是运行不过去的时候,回去检查一下是不是有地方漏东西了

相关推荐
Nil2087 小时前
leetcode 739每日温度
算法·leetcode·职场和发展
lvwangshu7 小时前
势能分析(摊还分析)
数据结构·数学·算法
xqqxqxxq8 小时前
LeetCode Hot100 矩阵专题题解笔记
笔记·leetcode·矩阵
All for pursuit.9 小时前
【贪心-4】581.最短无序连续子数组
数据结构·c++·算法·leetcode
mmmmath_310 小时前
LeetCode.020.有效的括号
数据结构·算法·leetcode
垆边人似月.10 小时前
华为机考题:字符个数统计
数据结构·算法·华为
All for pursuit.11 小时前
【回溯-2】22.括号生成
数据结构·c++·算法·leetcode
longlongzihan11 小时前
LeetCode 1004.最大连续1的个数III 滑动窗口及动态规划题解
c++·算法·leetcode·dp·滑动窗口
Chen—LSN11 小时前
数据结构——拿捏复杂度
java·c语言·开发语言·数据结构·经验分享·笔记·算法
Chen_harmony12 小时前
六、排序详解
c语言·数据结构·算法·排序算法