日野弥生:勉強しよう
LeetCode 19 - 删除链表的倒数第N个节点
发表于2025年01月18日
先让快指针走n次,保证快指针和慢指针之间差n步,再让快慢指针同时走,只到快指针到表尾时,慢指针就指向着倒数第N个节点。
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* slow=head,*fast=head;
int i=0;
while(i < n)
{
fast=fast->next;
i++;
}
if(!fast)
return head->next;
while(fast->next)
{
fast=fast->next;
slow=slow->next;
}
ListNode* toBeDelPtr=slow->next;
slow->next=toBeDelPtr->next;
delete toBeDelPtr;
return head;
}
};