力扣19-删除链表中倒数第N个节点

删除链表中倒数第N个节点

题目链接

解题思路:

  1. 遍历链表,获得链表的长度size
  2. 删除倒数第N个节点,就是删除第size-N个节点
c++ 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        int size = 0;
        ListNode *r = head;
        while(r != nullptr){
            size++;
            r = r->next;
        }//这层循环是为了获取链表的长度
        int s = size - n;//获取要删除的位置
        r = head;
        int index = 0;
        while(r){
            index++;
            if(index == s){
                r->next = r->next->next;//删除该节点
                break;
            }
            if(s==0){
                return head->next;//这种情况特判,删除的是头节点
            }
            r = r->next;
        }
        return head;
    }
};
相关推荐
VT.馒头4 分钟前
【力扣】2627. 函数防抖
前端·javascript·算法·leetcode
想逃离铁厂的老铁4 分钟前
Day41 >> 121、买卖股票的最佳时机 + 122.买卖股票的最佳时机II + 123.买卖股票的最佳时机III
算法·leetcode
夏鹏今天学习了吗5 分钟前
【LeetCode热题100(79/100)】打家劫舍
算法·leetcode·职场和发展
iAkuya6 分钟前
(leetcode)力扣100 41二叉树的层序遍历(bfs)
windows·leetcode·宽度优先
老鼠只爱大米13 分钟前
LeetCode算法题详解 53:最大子数组和
leetcode·动态规划·分治法·最大子数组和·kadane算法·maxsubarray
jimy114 分钟前
消息队列Message Queue(MQ),队列链表(queue),消费者,生产者
数据结构·链表
小欣加油14 分钟前
leetcode 面试题17.16 按摩师
数据结构·c++·算法·leetcode·动态规划
飞Link20 分钟前
数据合成中的通用模型蒸馏、领域模型蒸馏和模型自我提升
算法·数据挖掘
夏鹏今天学习了吗21 分钟前
【LeetCode热题100(80/100)】完全平方数
算法·leetcode·职场和发展
sin_hielo22 分钟前
leetcode 3454(扫描线模板题:矩形面积并)
数据结构·算法·leetcode