给你一个链表,删除链表的倒数第 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]
方法一:快慢双指针
快指针先移动倒数的位数(比如倒数第二个那么快指针就先移动两位),然后快慢指针同时移动,当快指针移动到最后一个节点的时候,满指针刚好移动到指定删除位置的前一位,这个时候执行删除操作即可。
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode preHead = new