19.删除链表的倒数第N个结点
思路:
先构建一个虚拟头结点,指向真正的头结点,让快慢指针都指向虚拟头结点
快指针从虚拟头结点开始后移,移动 n+1 步,即for循环中跳出条件写成 i<=n,正好满足 i=0 时,f 指向索引0的位置
for循环执行完毕之后,f 指针指向的就是第n个结点,此时 f 和 s 指针开始同时移动,当 f 指针指向null的时候, s 指针指向的刚好是倒数第N个结点
然后让 s 的next,指向 s 的next的next
返回头结点即可。
思路:
先构建一个虚拟头结点,指向真正的头结点,让快慢指针都指向虚拟头结点
快指针从虚拟头结点开始后移,移动 n+1 步,即for循环中跳出条件写成 i<=n,正好满足 i=0 时,f 指向索引0的位置
for循环执行完毕之后,f 指针指向的就是第n个结点,此时 f 和 s 指针开始同时移动,当 f 指针指向null的时候, s 指针指向的刚好是倒数第N个结点
然后让 s 的next,指向 s 的next的next
返回头结点即可。