力扣 19 删除链表的倒数第N个结点
设一快一慢指针,快指针先走N步,等快指针到达最后一个元素时,此时慢指针恰好在倒数第N个元素的前一个元素,然后删掉就可以了。
class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* pre=head,*p=head; for(int i=1;i<=n;i++) { p=p->next; } if(p==NULL){ head=pre->next; return head; } while(p->next!=NULL){ pre=pre->next; p=p->next; } pre->next=pre->next->next; return head; } };