一、思路:
遍历一遍存储节点到vector数组中,然后利用数组指向倒数第n个,将倒数n-1的节点的next指向倒数n的next
二、代码:
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
vector<ListNode*>nodeLists;
ListNode *nowNode = head;
while (nowNode != NULL) {
nodeLists.push_back(nowNode);
nowNode = nowNode->next;
}
int index = nodeLists.size() - n;
if (index <= 0)
return head->next;
nodeLists[index - 1]->next = nodeLists[index]->next;
delete nodeLists[index];
return head;
}
};