更新一个第一次自己一下子A了的题目=.=虽然巨简单
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* dummyHead = new ListNode(0);
dummyHead->next = head;
ListNode* fast= dummyHead;
ListNode* slow = dummyHead;
while (n--) {
fast = fast->next;
}
while (fast->next != nullptr) {
fast = fast->next;
slow = slow->next;
}
slow->next = slow->next->next;
return dummyHead->next;
}
一开始,我最后return的是head,运行的时候有一个case通不过:
输出应该是空的,但我输出总是[1],改成return dummyHead->next;就好了。
至于原因是什么,我还没想好。
确实还不太理解对虚拟头结点的操作,只是会用。