class Solution { public: /** * * @param head ListNode类 * @param n int整型 * @return ListNode类 */ ListNode* removeNthFromEnd(ListNode* head, int n) { // write code here // 双指针方法 ListNode* fast = head; ListNode* slow = head; for (int i = 0; i < n; ++i) { fast = fast->next; // 特殊情况,所要删除的是第一个元素(此时快指针走到最后了) if (fast == nullptr) { return head->next; } } while(fast->next) { fast = fast->next; slow = slow->next; } slow->next = slow->next->next; return head; } };