题解 | #删除链表的倒数第n个节点#
删除链表的倒数第n个节点
https://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { // write code here if (head == nullptr) return nullptr; ListNode* dummy = new ListNode(0); dummy->next = head; ListNode* f = head; ListNode* s = head; ListNode* pre = dummy; for (int i = 0; i < n; i++) { if (f != nullptr) { f = f->next; } else { return nullptr; } } while (f != nullptr) { pre = s; s = s->next; f = f->next; } pre->next = s->next; return dummy->next; } };