3-链表-删除链表的倒数第 N 个结点

这是链表的第三篇算法,力扣链接。

给你一个链表,删除链表的倒数第 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]

老规矩,先上个暴力法来解决问题,暴力法的思路就是先获取链表长度,然后根据长度来判断改变的位置。

func getLength(head *ListNode) (length int) {for ; head != nil; head = head.Next {length++}return
}func removeNthFromEnd(head *ListNode, n int) *ListNode {length := getLength(head)result := &ListNode{0, head}cur := resultfor i := 0; i < length-n; i++ {cur = cur.Next}cur.Next = cur.Next.Nextreturn result.Next
}

当然也可以考虑空间换时间的思路,即栈的思路解决这个问题,Go没有原生的栈的支持,所以这里考虑用数组来代替。

func removeNthFromEnd(head *ListNode, n int) *ListNode {stack := make([]*ListNode, 0)head = &ListNode{Next: head,}result := headfor head != nil {stack = append(stack, head)head = head.Next}if len(stack) > 1 {stack[len(stack)-1-n].Next = stack[len(stack)-1-n].Next.Next}return result.Next
}

当然也可以考虑快慢指针解决这个问题,指针的速度差就是n。

func removeNthFromEnd(head *ListNode, n int) *ListNode {result := &ListNode{Next: head,}left, right := result, headfor i := 0; i < n; i++ {right = right.Next}for right != nil {left = left.Nextright = right.Next}left.Next = left.Next.Nextreturn result.Next
}

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

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

相关文章

探索 WebRTC:数字世界的实时通信魔法

前言 在当今日常生活中&#xff0c;我们期望能够随时随地与朋友、同事或家人进行实时沟通。WebRTC&#xff08;Web实时通信&#xff09;技术就像一种魔法&#xff0c;让这些交流变得无比便捷&#xff0c;而且完全在浏览器中实现&#xff0c;无需下载任何额外应用或插件。 Web…

Java限流方案常用算法详解 固定时间窗口 滑动时间窗口 漏桶限流 令牌桶限流

前言 为什么要做限流&#xff1f; 服务需要保护自己&#xff0c;以免被太多的请求淹没&#xff08;无论是恶意或无意的&#xff09;&#xff0c;从而保持可用性。 举个生活中的例子&#xff0c;某个景区&#xff0c;平时可能根本没什么人前往&#xff0c;但是一旦到了国庆假日…

W5100S-EVB-Pico评估版介绍

文章目录 1 简介2 硬件资源2.1 硬件规格2.2 引脚定义2.3 工作条件 3 参考资料3.1 Datasheet3.2 原理图3.3 尺寸图&#xff08;单位&#xff1a;mm&#xff09;3.4 参考例程 4 硬件协议栈优势 1 简介 W5100S-EVB-Pico是一款基于树莓派RP2040和全硬件TCP/IP协议栈以太网芯片W5100…

Nginx服务器中设置禁止访问文件或目录的方法

location ^~ /assets/ { deny all; } 已启用目录浏览 在nginx要禁止某个或一类资源&#xff0c;只需要增加一个location&#xff0c;然后在其中使用deny all即可。 禁止访问扩展名为bat的文件&#xff0c;配置如下&#xff1a; location ~* /.bat { deny all…

Diffusion Model 学习笔记

论文链接&#xff1a;Denoising Diffusion Probabilistic Models。 Diffusion Model 分为两部分&#xff0c;前向扩散过程和后向生成过程&#xff0c;前向扩散过程从一张原始图像逐步加噪声变为一张纯噪声图像&#xff0c;后向生成过程则从随机噪声来逐步恢复出原图像。 贝叶…

HiWoo Box:远程监控DCS的强大助手

在工业自动化领域&#xff0c;分布式控制系统&#xff08;DCS&#xff09;被广泛应用于各种生产流程中&#xff0c;如化工、电力、制药等。然而&#xff0c;随着企业规模的扩大和生产流程的复杂化&#xff0c;对DCS的远程监控需求也日益迫切。HiWoo Box作为一种功能强大的工业智…

纯CSS实现马里奥效果,回忆一下童年吧

&#x1f4e2; 鸿蒙专栏&#xff1a;想学鸿蒙的&#xff0c;冲 &#x1f4e2; C语言专栏&#xff1a;想学C语言的&#xff0c;冲 &#x1f4e2; VUE专栏&#xff1a;想学VUE的&#xff0c;冲这里 &#x1f4e2; CSS专栏&#xff1a;想学CSS的&#xff0c;冲这里 &#x1f4…

基于彩虹表碰撞法破解SHA/MD5等hash加密——半非暴力破解哈希逆运算

背景知识 哈希加密算法应用范围广泛&#xff0c;包括但不限于&#xff1a;Unix风格的用户密码&#xff08;Linux、*BSD、Solaris、AIX、QNX等&#xff09;、macOS、Windows、Web应用程序&#xff08;如WordPress&#xff09;、办公软件&#xff08;如Notes、Domino&#xff09…

亚信安慧AntDB数据库——通信运营商核心系统的全面演进

AntDB数据库源自通信运营商核心系统&#xff0c;经过15年的平稳运行和不断演进&#xff0c;成功跟随通信技术的升级步伐&#xff0c;逐步迈向5G时代&#xff0c;并且在这期间完成了8次大版本的迭代&#xff0c;为行业树立了技术领先的典范。其独特之处在于具备超融合架构&#…

DDAE: Denoising Diffusion Autoencoders are Unified Self-supervised Learners

DDAE: Denoising Diffusion Autoencoders are Unified Self-supervised Learners Paper&#xff1a;https://arxiv.org/abs/2303.09769 Code&#xff1a;https://github.com/FutureXiang/ddae TL; DR&#xff1a;扩散模型的训练其实就是训练一个去噪模型&#xff0c;考虑到类似…

clickhouse连接工具dbeaver

地址 地址&#xff1a; Download | DBeaver Community 安装 表引擎 表引擎之TinyLog 以列文件的形式保存在磁盘上&#xff0c;不支持索引&#xff0c;没有并发控制。一般保存少量数据的小表&#xff0c; 生产环境上作用有限&#xff0c;多用于平时练习测试用。 内存引擎&am…

linux 内核模块

linux 内核模块 1. 内核相关命令与文件内核模块存放位置查看已加载内核模块加载与卸载内核模块修改内核参数永久调整内核参数 2. 常用模块进程调度模块进程间通信模块内存管理模块文件系统模块网络接口模块 Linux 内核采用的是模块化技术&#xff0c;这样的设计使得系统内核可以…

【第四章】用AIGC从0到1为主题乐园定制虚拟科普导游

4.1 场景&#xff1a;H5辅助博物馆的导游导览场景&#xff08;卡通数字人&#xff09; 4.1 先给大家体验下效果【采用清华元娲的AIGC平台能力】 形象需要企业方进行美术资源定制开发 点击如下链接&#xff1a; 点击体验 4.2 场景 后台管理&#xff0c;选择背景及FAQ问题库 将…

电脑开机自动断电,简单4招,快速解决!

“不知道我的电脑最近是怎么回事&#xff0c;每次一开机就会出现自动断电的情况&#xff0c;有什么方法可以解决吗&#xff1f;” 在使用电脑时&#xff0c;由于电源供应不稳定或过热&#xff0c;以及各种硬件问题&#xff0c;可能会导致电脑开机自动断电。遇到这种情况&#x…

Kubernetes 学习总结(42)—— Kubernetes 之 pod 健康检查详解

Kubernetes 入门 回想 2017 年刚开始接触 Kubernetes 时&#xff0c;碰到 Pod一直起不来的情况&#xff0c;就开始抓瞎。后来渐渐地掌握了一些排查方法之后&#xff0c;这种情况才得以缓解。随着时间推移&#xff0c;又碰到了问题。有一天在部署某个 springboot 微服务时&…

【笔试强训】Day1_贪心算法_组队竞赛

题目链接&#xff1a;牛客_组队竞赛 目录 题目解析 代码书写 知识补充 题目解析 题目让我们求所有队伍的水平值总和最大 由题可得&#xff1a; 队伍的水平值等于该队伍队员中第二高水平值; 随机给定3*n个数&#xff0c;需要自己组队并且得出队伍水平最大值&#xff1b; 我…

vue-cli3/webpack打包时去掉console.log调试信息

文章目录 前言一、terser-webpack-plugin是什么&#xff1f;二、使用配置vue-cli项目 前言 开发环境下&#xff0c;console.log调试信息&#xff0c;有助于我们找到错误&#xff0c;但在生产环境&#xff0c;不需要console.log打印调试信息&#xff0c;所以打包时需要将consol…

BUUCTF Reverse/[2019红帽杯]Snake

BUUCTF Reverse/[2019红帽杯]Snake 下载解压缩后得到可执行文件&#xff0c;而且有一个unity的应用程序&#xff0c;应该是用unity编写的游戏 打开是一个贪吃蛇游戏 用.NET Reflector打开Assembly-CSharp.dll。&#xff08;unity在打包后&#xff0c;会将所有的代码打进一个Ass…

Lumerical------按键中断程序执行

Lumerical------中断程序执行 引言正文 引言 在 Lumerical 中&#xff0c;很多时候我们需要通过 sweep 的方式来获取我们想要的结果&#xff0c;然而&#xff0c;有时候当我们运行程序后发现书写的脚本有问题时&#xff0c;我们想要强行终止程序的执行&#xff0c;该怎么办呢&…

[足式机器人]Part4 南科大高等机器人控制课 CH12 Robotic Motion Control

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;CLEAR_LAB 笔者带更新-运动学 课程主讲教师&#xff1a; Prof. Wei Zhang 课程链接 &#xff1a; https://www.wzhanglab.site/teaching/mee-5114-advanced-control-for-robotics/ 南科大高等机器人控制课 Ch12 Robotic …