LeetCode Hot100 删除链表的倒数第 N 个结点

news2025/1/6 18:49:31

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

示例 1:

输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1
输出:[]

示例 3:

输入:head = [1,2], n = 1
输出:[1]

思路

        双指针,快指针判断范围,慢指针定位;哈希;递归。

代码

        递归

class Solution {
public:
    int step = 0;
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        if(head)
            head->next = removeNthFromEnd(head->next, n);
        else
            return nullptr;
        ++step;
        if(step == n)
            return head->next;
        else
            return head;
    }
};

        双指针

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

        哈希

class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        unordered_map<int, ListNode*> hashmap; 
        int cnt = 0;
        ListNode* node = head;
        while(node != nullptr)
        {
            ++cnt;
            hashmap[cnt] = node;
            node = node->next;
        }
        if(n!=cnt)
            hashmap[cnt-n]->next =hashmap[cnt-n+1]->next;
        else
            head = head->next;
        return head;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1960275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity渲染】烘培

光照探针 光照探针就是在烘焙的时候会布局多个探测点&#xff0c;记录那个地方的光照信息&#xff0c;后面实时渲染动态物体会影响其渲染&#xff0c;动态物体会选择自己周围最近的探针进行影响 反射探针 反射探针就是记录周围环境&#xff0c;计算一个类似天空盒的图片&am…

免费!OpenAI发布最新模型GPT-4o mini,取代GPT-3.5,GPT-3.5退出历史舞台?

有个小伙伴问我&#xff0c;GPT-4O mini是什么&#xff0c;当时我还一脸懵逼&#xff0c;便做了一波猜测&#xff1a; 我猜测哈&#xff0c;这个可能是ChatGPT4o的前提下&#xff0c;只支持文本功能的版本&#xff0c;速度更快 结果&#xff0c;大错特错。 让我们一起看看Open…

【QT】无法打开QT的ui文件,出现闪退情况

打开qt的ui文件出现闪退的情况&#xff1a; 解决办法&#xff1a;点击扩展-Qt VS Tools-Options 找到Qt General中的Qt Designer 的Run in detached window改为True。

如何用3个月零基础入门网络安全?_网络安全零基础怎么学习

前 言 写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全&#xff0c;实现自己的“黑客梦”。文章的宗旨是&#xff1a; 1.指出一些自学的误区 2.提供客观可行的学习表 3.推荐我认为适合小白学习的资源.大佬绕道哈&#xff01; →点击获取网络安全资料攻略← 一、自学…

扩散模型系列0 DDPM:Denoising Diffusion Probabilistic Models

前言&#xff1a; 从7月12号开始 学习了一些扩散模型的论文&#xff0c;越看越上瘾&#xff0c;对未知的渴求激励着我不断地读论文整理、学习、分析、理解 以前发的博客仅仅是对论文的翻译&#xff0c;现在觉得仅仅翻译是不够的&#xff0c;读了一篇论文以后&#xff0c;要形成…

shardingsphere的学习(二):sharingjdbc操作读写分离

简介 mysql配置读写分离以及使用shardingjdbc配置操作读写分离 读写分离 主数据库负责增删改操作&#xff08;写&#xff09;&#xff0c;从数据库负责查询操作&#xff08;读&#xff09;&#xff0c;主数据库和从数据库之间会数据同步&#xff08;主从复制&#xff09;。 …

中电金信:云原生时代IT基础设施管理利器——基础设施即代码(IaC)

在数字化转型、零售业务快速发展、信创建设驱动下&#xff0c;应用架构、技术架构、基础架构都已向云原生快速演进&#xff0c;银行业IT基础设施管理产生了非常大的变化&#xff0c;当前银行业&#xff0c;正在开展新一轮的核心应用系统重构、基础平台统一建设等重点任务&#…

Move生态:从Aptos和Sui到Starcoin的崛起

区块链技术自诞生以来&#xff0c;已经经历了多个发展阶段和技术迭代。近年来&#xff0c;随着智能合约平台的不断演进&#xff0c;以Move语言为核心的生态系统逐渐崭露头角。Move语言以其安全性、灵活性和高效性吸引了大量开发者和项目方的关注。在Move生态中&#xff0c;Apto…

⌈ 传知代码 ⌋ 利用scrapy框架练习爬虫

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

56_Redis简单命令

一、引言 1.1 数据库压力过大 由于用户量增大&#xff0c;请求数量也随之增大&#xff0c;数据压力过大 一个请求的url 背后可能有有4-5个 sql的操作 每秒钟 qps&#xff08;并发数&#xff09; 1000 背后的sql操作 4000-5000mysql 单机并发量读写 8000-10000 &#x…

素数提升运算时间得算法

我们在计算素数的一种简便算法&#xff0c;用到另一个库math.h之后给大家详细的解释原理 #include<stdio.h> #include<math.h> int main() {int i 0;for (i 101; i < 200; i 2){int flag 1;int j 0;for (j 2; j < sqrt(i); j){if (i % j 0){flag 0;b…

ITSS四级认证费用是多少?

信息技术服务标准&#xff08;ITSS&#xff09;认证是评估一个企业在信息技术服务领域能力的标准之一&#xff0c;它涵盖了从基础标准、支撑标准到基于业务的需求侧和供给侧标准的全面内容。 具体条件 独立法人地位&#xff1a;申请单位需要具备独立法人地位&#xff0c;这是四…

如何使用rdma-core来实现RDMA操作

rdma-core 是一个开源项目&#xff0c;为远程直接内存访问&#xff08;RDMA&#xff09;提供用户空间的支持。它包括 RDMA 设备的驱动程序、库和工具&#xff0c;旨在简化 RDMA 应用的开发和部署。 基础知识参考博文&#xff1a; 一文带你了解什么是RDMA RDMA 高性能架构基本…

day07 项目启动以及git

spring框架 spring 负责整合各种框架&#xff0c;把new对象的部分交给spring去做&#xff0c;对象new不出来&#xff0c;项目就启动不起来&#xff0c;这样可以有效保证所需要的对象都在容器中存在&#xff0c;后续的部分都可以顺利执行控制反转&#xff1a;业务对象创建依赖资…

零基础入门转录组数据分析——机器学习算法之lasso

零基础入门转录组数据分析——机器学习算法之lasso 目录 零基础入门转录组数据分析——机器学习算法之lasso1. Lasso基础知识2. Lasso&#xff08;Rstudio&#xff09;——代码实操2. 1 数据处理2. 2 构建Lasso模型2. 3 提取Lasso关键基因2. 4 Lasso结果简单可视化 1. Lasso基础…

高度偏斜特征处理:log(x)、sqrt(x)、box-cox、Yeo-Johnson

一、概念 高度偏斜的特征 &#xff1a; 数据分布不均匀、不对称的特征 处理之后&#xff1a;使其分布更接近正态分布或至少减少偏斜程度 二、处理方法 1、对数变换&#xff1a;log(x) 适用于右偏数据压缩大值&#xff0c;拉伸小值 2、平方根变换&#xff1a;sqrt(x) 对右…

臂式血压计电子方案ocba设计与开发

臂式血压计是运用电子技术与血压间接测量原理进行血压测量的医疗设备。臂式血压计有臂式、腕式、手表式之分&#xff1b;其电子技术已经历了最原始的第一代&#xff08;机械式定速排气阀&#xff09;、第二代&#xff08;电子伺服阀&#xff09;、第三代&#xff08;加压同步测…

学习测试12-车(略)

系统讲解&#xff0c;可以在懂车帝网站去了解汽车结构

商用密码测评之对HTTPS(TLS)协议中各个参数解释

1、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 是一个广泛使用的TLS&#xff08;传输层安全协议&#xff09;加密套件&#xff0c;它结合了多种技术和算法来确保网络通信的安全。下面是对该加密套件中各个参数的详细解释&#xff1a; 1. TLS 定义&#xff1a;TLS&#xff08;传…

【文件解析漏洞】实战详解!

漏洞描述&#xff1a; 文件解析漏洞是由于中间件错误的将任意格式的文件解析成网页可执行文件&#xff0c;配合文件上传漏洞进行GetShell的漏洞! IIS解析漏洞&#xff1a; IIS6.X&#xff1a; 方式一:目录解析 在网站下建立文件夹的名字为.asp/.asa 的文件夹&#xff0c;其目…