删除链表倒数第N个节点

Leetcode(19):

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

分析:

首要目标就是找到第N个节点的前一个节点,因为只有通过这个节点(cur)才可进行对第N个节点进行删除操作,即cur->next=cur->next->next;但是要是找到第N个节点不是很容易,可以使用便捷方法------快慢指针,使用时要考虑一点如何找到第N个节点的前一个节点,即将N+1,这样就可实现。

代码:

cpp 复制代码
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode*dummyHead=new ListNode(0);
        dummyHead->next=head;
        ListNode*fast=dummyHead;
        ListNode*slow=dummyHead;
        n++;//进行+1操作,找到前一节点
        while(n--&&fast!=nullptr){
            fast=fast->next;
        }
        while(fast!=nullptr){
            fast=fast->next;
            slow=slow->next;
        }
        slow->next=slow->next->next;
        return dummyHead->next;
    }
};
相关推荐
多吃蔬菜!!!3 小时前
排序算法C语言实现
数据结构
零叹3 小时前
篇章六 数据结构——链表(二)
数据结构·链表·linkedlist
-qOVOp-8 小时前
408第一季 - 408内容概述
数据结构
闪电麦坤959 小时前
数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
数据结构·算法
T1an-112 小时前
【力扣链表篇】206.反转链表
算法·leetcode·链表
码农开荒路13 小时前
Redis底层数据结构之字典(Dict)
java·数据结构·数据库·redis
lyh134415 小时前
【Fiddler抓取手机数据包】
数据结构
int型码农16 小时前
数据结构第八章(二)-交换排序
c语言·数据结构·算法·排序算法
落羽的落羽19 小时前
【C++】二叉搜索树
开发语言·数据结构·c++·学习
编程绿豆侠19 小时前
力扣HOT100之二分查找: 34. 在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode