给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
示例 2:
输入:head = [1], n = 1
输出:[]
示例 3:
输入:head = [1,2], n = 1
输出:[1]
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int k) {
auto dummy = new ListNode(-1);//弄一个头结点
dummy->next = head;
int n = 0;
for (auto p = dummy->next; p; p = p->next) n ++ ;
auto p = dummy;
for (int i = 0; i < n - k ; i ++ ) p = p->next;
p->next = p->next->next;
return dummy->next;
}
};