日野弥生:勉強しよう

LeetCode 19 - 删除链表的倒数第N个节点

发表于2025年01月18日

#链表 #双指针

先让快指针走n次,保证快指针和慢指针之间差n步,再让快慢指针同时走,只到快指针到表尾时,慢指针就指向着倒数第N个节点。

class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode* slow=head,*fast=head;
        int i=0;
        while(i < n)
        {
            fast=fast->next;
            i++;
        }
        if(!fast)
            return head->next;

        while(fast->next)
        {
            fast=fast->next;
            slow=slow->next;
        }
        ListNode* toBeDelPtr=slow->next;
        slow->next=toBeDelPtr->next;
        delete toBeDelPtr;
        return head;
    }
};

フラッシュタブ:LeetCode

题目链接:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/

上一篇

LeetCode 206 - 反转链表

下一篇

LeetCode 203 - 移除链表元素