/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
//快慢指针算法
struct ListNode* removeNthFromEnd(struct ListNode* head, int n)
{
struct ListNode* shead=(struct ListNode*)malloc(sizeof(struct ListNode));
shead->next=head;
struct ListNode* fast=shead;
struct ListNode* slow=shead;
n++;//向前走n步
while(n-- && fast!=NULL)
{
fast=fast->next;
}
//快指针走完 慢指针与快指针 同时走
while(fast!=NULL)
{
fast=fast->next;
slow=slow->next;
}
slow->next=slow->next->next;
return shead->next;
}
力扣:19. 删除链表的倒数第 N 个结点
猜你喜欢
转载自blog.csdn.net/congfen214/article/details/129543058
今日推荐
周排行