给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* removeNthFromEnd(struct ListNode* head, int n){
struct ListNode*fast=head;
struct ListNode*ad=malloc(sizeof(struct ListNode));//创建ad指向头节点
ad->val=0,ad->next=head;
struct ListNode*slow=ad;
while(n-->1&&fast!=NULL){
fast=fast->next;
}while(fast->next!=NULL){
fast=fast->next;
slow=slow->next;
}
slow->next=slow->next->next;//slow为指定结点的前一个结点
return ad->next;
}