struct ListNode* removeNthFromEnd(struct ListNode* head, int n){
struct ListNode* dummyHead = (struct ListNode*)malloc(sizeof(struct ListNode));
dummyHead->next = head;
struct ListNode*slow=dummyHead,*fast=dummyHead;
for(int i=0;i<n+1;i++){
fast=fast->next;
}
while(fast!= NULL){
slow=slow->next;
fast=fast->next;
}
struct ListNode*temp=slow->next;
slow->next=temp->next;
free(temp);
return dummyHead->next;
}