【数据结构与算法】leetcode19.删除链表的倒数第n个节点

链接:
题目:
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

在这里插入图片描述


解题:
同样是用快慢指针,只是此时慢指针要从-1开始。

class Solution {
    
    
public:
    /**
     * 
     * @param head ListNode类 
     * @param n int整型 
     * @return ListNode类
     */
    ListNode* removeNthFromEnd(ListNode* head, int n) {
    
    
        ListNode* dummyHead=new ListNode(-1);
        dummyHead->next=head;
        ListNode* fast=head;
        ListNode* slow=dummyHead;
        for(int i=0;i<n;i++){
    
    
            fast=fast->next;
        }
        while(fast!=nullptr){
    
    
            fast=fast->next;
            slow=slow->next;
        }
        slow->next=slow->next->next;
        return dummyHead->next;
    }
};

猜你喜欢

转载自blog.csdn.net/ryanji/article/details/127622611