19. 删除链表的倒数第 N 个结点 Plus
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
if(!head) return head;
ListNode* dummyHead = new ListNode(0, head);
ListNode* fast = dummyHead;
ListNode* slow = dummyHead;
while(n>0){
fast = fast->next;
--n;
}
fast = fast->next;
while(fast){
slow = slow->next;
fast = fast->next;
}
ListNode* temp = slow->next;
slow->next = temp->next;
delete temp;
return dummyHead->next;
}
};
双指针做法+虚拟头节点 很好使
浙公网安备 33010602011771号