1.题目描述
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
示例1:
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
示例 2:
输入:head = [1], n = 1
输出:[]
示例 3:
输入:head = [1,2], n = 1
输出:[1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list
2.解题思路
可以使用双指针法。首先建立一个虚拟头结点,让快慢指针都等于虚拟头结点。紧接着让快指针先向前走n+1步,之后再让快慢指针一起向前走,直到fast = NULL为止。
先走n+1步是因为我们需要删除的是倒数第n个结点,那么就要让slow->next = 删除结点的前一个结点,这样才方便我们的操作。
3.代码实现
class Solution {
public