【题干】
给你一个链表,删除链表的倒数第?n
?个结点,并且返回链表的头结点。
【思路】
【题解】
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* preHead = new ListNode(0, head);
ListNode* first = head;
ListNode* second = preHead;
for (int i = 0; i < n; ++i) {
first = first->next;
}
while (first) {
first = first->next;
second = second->next;
}
second->next = second->next->next;
ListNode* head = preHead->next;
delete preHead;
return head;
}
};