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

目录

一、注意思想

二、本题精髓

三、关键思路

四、本题题目和代码

五、注意事项


一、注意思想

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

2、注意虚拟头节点思想

二、本题精髓

让快指针先走n+1步

三、关键思路

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

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

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

3、执行删除操作

四、本题题目和代码

五、注意事项

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

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

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

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

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

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

相关推荐
careathers7 小时前
【数据结构】从堆到 PriorityQueue:手写一个优先级队列
数据结构
y1su8 小时前
Leetcode 字符串模板
java·数据结构·算法·leetcode·职场和发展·动态规划
十二14 小时前
【洛谷题解】P1115 最大子段和(前缀和 + 维护最小前缀)
数据结构·c++·算法·蓝桥杯
Xin77014 小时前
LeetCode 46. 全排列(回溯法)
leetcode
2501_9339232515 小时前
双指针算法:移动零+复写零(Java)
数据结构·算法·双指针
文丑颜不良啊16 小时前
LeetCode476~500题目解析
java·leetcode
suhan17 小时前
【数据结构】六、图:4.图的遍历(深度优先算法DFS、广度优先算法BFS)
数据结构·算法·排序算法
suhan17 小时前
【数据结构】六、图:3.十字链表、邻接多重表、边集数组
数据结构·算法·排序算法
Tsuki_tl18 小时前
【优选算法:双指针】——复写零题解
java·c++·算法·leetcode·数组·双指针·复写零
kiracrimson18 小时前
STL简单引入:把数据结构做成模板
开发语言·数据结构·c++