/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution { public: /** * * @param head ListNode类 * @param n int整型 * @return ListNode类 */ ListNode* removeNthFromEnd(ListNode* head, int n) { // write code here if (head == nullptr) { return nullptr; } ListNode* fastNode = head; ListNode* slowNode = head; int fast = 0; while (fast < n) { fast++; fastNode = fastNode->next; } if (fastNode == nullptr) { return head->next; } while (fastNode->next!=nullptr) { fastNode = fastNode->next; slowNode = slowNode->next; } slowNode->next = slowNode->next->next; return head; } };