LeetCode19 删除链表的倒数第 N 个结点
题目链接:LeetCode19
描述
给你一个链表,删除链表的倒数第 n
个结点,并且返回链表的头结点。
示例
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
思路
定义fast指针和slow指针,初始值为虚拟头结点
fast首先走n + 1步
fast和slow同时移动,直到fast指向末尾
删除slow指向的下一个节点
代码
class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy = new ListNode();dummy.next = head;ListNode fast = dummy;ListNode slow = dummy;while(n-- >= 0){fast = fast.next;}while(fast != null){slow = slow.next;fast = fast.next;}slow.next = slow.next.next;return dummy.next;}
}