链接:
题目:
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
解题:
同样是用快慢指针,只是此时慢指针要从-1开始。
class Solution {
public:
/**
*
* @param head ListNode类
* @param n int整型
* @return ListNode类
*/
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* dummyHead=new ListNode(-1);
dummyHead->next=head;
ListNode* fast=head;
ListNode* slow=dummyHead;
for(int i=0;i<n;i++){
fast=fast->next;
}
while(fast!=nullptr){
fast=fast->next;
slow=slow->next;
}
slow->next=slow->next->next;
return dummyHead->next;
}
};