llllmz

导航

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;
    }
};

双指针做法+虚拟头节点 很好使

posted on 2024-09-27 21:03  神奇的萝卜丝  阅读(7)  评论(0)    收藏  举报