当前位置: 首页 > news >正文

《链表篇》---删除链表的倒数第N个节点(中等)

题目传送门 

方法一:计算链表长度(迭代)

1.计算链表长度,并且定义哑节点链接链表。

2.从哑节点开始前进length-n次。即为被删除节点的前置节点。

3.进行删除操作。

4.返回哑节点的后置节点

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {//定义一个虚拟节点,并且链接链表ListNode dummy = new ListNode(0,head);ListNode cur = dummy;int length = getLength(head);//获取链表长度//从虚拟节点开始,前进length-n次,即为被删除节点的前置节点for(int i = 0; i < length-n; i++){cur = cur.next;}cur.next = cur.next.next;return dummy.next;}public int getLength(ListNode head){int length = 0;while(head != null){length++;head = head.next;}return length;}
}

方法二:栈

在 Java 中,虽然有 Stack 类,但推荐使用 Deque(例如 LinkedListArrayDeque)来实现栈的功能。主要原因有:

1. 设计上的问题

2. 性能优势

3. 双端队列的灵活性

4. 现代化的 API

 1.定义一个虚拟节点,用来找到结果链表的头结点。

2.将链表节点全部入栈,包括虚拟节点。

3.出n次栈。也就是刚好把要删除节点出栈。

4.记录栈顶元素的地址。也就是被删除节点的前置节点。

5.链接链表。将前置节点与后置节点链接起来。

6.返回虚拟节点的下一个节点。

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy = new ListNode(0, head);Deque<ListNode> stack = new LinkedList<ListNode>();ListNode cur = dummy;while (cur != null) {stack.push(cur);cur = cur.next;}for (int i = 0; i < n; ++i) {stack.pop();}ListNode prev = stack.peek();prev.next = prev.next.next;ListNode ans = dummy.next;return ans;}
}

相关文章:

《链表篇》---删除链表的倒数第N个节点(中等)

题目传送门 方法一&#xff1a;计算链表长度&#xff08;迭代&#xff09; 1.计算链表长度&#xff0c;并且定义哑节点链接链表。 2.从哑节点开始前进length-n次。即为被删除节点的前置节点。 3.进行删除操作。 4.返回哑节点的后置节点 class Solution {public ListNode remo…...

duilib 进阶 之 TileListBox 列表

目录 一、TileListBox 1、样式 1)、整体列表分列设置 2)、列表项样式设置 3)、选中后出现√号,horver时 出现边框色 的实例 2、代码 1)、普通动态添加列表项 2)、列表项样式中有自定义控件时 3)、获得选中项 一、TileListBox Tile [taɪl] ,瓦片 棋子 Ti…...

Web应用安全—信息泄露

从书本和网上了解到Web应用安全的信息泄露的知识&#xff0c;今天跟大家分享点。 robots.txt泄漏敏感信息 漏洞描述&#xff1a;搜索引擎可以通过robots文件可以获知哪些页面可以爬取&#xff0c;哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范&#xff0c…...

大数据治理:策略、技术与挑战

随着信息技术的飞速发展&#xff0c;大数据已经成为现代企业运营和决策的重要基础。然而&#xff0c;大数据的复杂性、多样性和规模性给数据管理带来了前所未有的挑战。因此&#xff0c;大数据治理应运而生&#xff0c;成为确保数据质量、合规性、安全性和可用性的关键手段。本…...

vscode插件-08 Golang

文章目录 Go安装其他必须软件 Go Go语言环境&#xff0c;只需安装这一个插件。然后通过vscode命令下载安装其他go环境需要的内容。 程序调试&#xff0c;需要创建.vscode文件夹并编写launch.json文件。 安装其他必须软件 ctrlshiftp&#xff0c;调出命令面板&#xff0c;输入…...

数据结构+算法分析与设计[15-18真题版]

2015年考试试题 一、给出数组A[3..8,2..6]0F integer,当它在内存中按行存放和按列存放时&#xff0c;分别写出元素A[i,j]的地址计算公式(设每个元素占两个存储单元)。(10分) 二、已知一棵二叉树的中序序列的结果是BDCEAFHG,后序序列的结果是DECBHGFA,试画出这棵二叉树。(10分…...

单链表OJ题(2):反转链表(三指针法)、找中间节点(快慢指针)

目录 1.反转链表 反转链表总结&#xff1a; 2.链表的中间节点&#xff08;快慢指针法&#xff09; 快慢指针法总结 1.反转链表 在这道题中&#xff0c;我们需要把一个单链表反转它们的指向&#xff0c;这里&#xff0c;我们给出了一个好理解的简单解法&#xff0c;就是用三…...

Rows 行

Goto Data Grid 数据网格 Rows 行...

十个常见的软件测试面试题,拿走不谢

所有面试问题一般建议先总后分的方式来回答&#xff0c;这样可以让面试官感觉逻辑性很强。 1. 自我介绍 之所以让我们自我介绍&#xff0c;其实是面试官想找一些时间来看简历&#xff0c;所以自我介绍不用太长的时间&#xff0c;1-2分 钟即可。 自我介绍一般按以下方式进行介…...

windows 11 配置 kafka 使用SASL SCRAM-SHA-256 认证

1. 下载安装apache-zookeeper-3.9.2 配置 \conf\zoo.cfg # The number of milliseconds of each tick tickTime2000 # The number of ticks that the initial # synchronization phase can take initLimit10 # The number of ticks that can pass between # sending a requ…...

Elasticsearch —— ES 环境搭建、概念、基本操作、文档操作、SpringBoot继承ES

文章中会用到的文件&#xff0c;如果官网下不了可以在这下 链接: https://pan.baidu.com/s/1SeRdqLo0E0CmaVJdoZs_nQ?pwdxr76 提取码: xr76 一、 ES 环境搭建 注&#xff1a;环境搭建过程中的命令窗口不能关闭&#xff0c;关闭了服务就会关闭&#xff08;除了修改设置后重启的…...

ElSelect 组件的 onChange 和 onInput 事件的区别

偶然遇到一个问题&#xff0c;在 ElSelect 组件中设置 filterable 属性后&#xff0c;监测不到复制粘贴的内容&#xff0c;也就意味着不能调用接口&#xff0c;下拉框内容为空。 简要代码如下&#xff1a; <ElSelectstyle"width: 256px"multiplev-model{siteIdL…...

加密与数据提取:保护隐私的新途径

加密与数据提取&#xff1a;保护隐私的新途径 在数字化时代&#xff0c;数据已成为驱动社会进步和经济发展的关键要素。然而&#xff0c;随着数据量的爆炸性增长&#xff0c;个人隐私保护成为了一个亟待解决的问题。如何在利用数据价值的同时&#xff0c;确保个人隐私不被侵犯…...

博客摘录「 宋宝华:Linux文件读写(BIO)波澜壮阔的一生」2024年11月1日

同时内核会给第2页标识一个PageReadahead标记&#xff0c;意思就是如果app接着读第2页&#xff0c;就可以预判app在做顺序读&#xff0c;这样我们在app读第2页的时候&#xff0c;内核可以进一步异步预读。 每个bio对应的硬盘里面一块连续的位置&#xff0c;每一块硬盘里面连续…...

使用华为云数字人可以做什么

在数字化和智能化快速发展的今天&#xff0c;企业面临着如何提升客户体验、优化运营效率的挑战。华为云数字人作为一种创新的智能交互解决方案&#xff0c;为企业提供了全新的可能性&#xff0c;助力企业在各个领域实现智能化升级。 提升客户服务体验 华为云数字人能够模拟真…...

leetcode刷题记录——(十六)349. 两个数组的交集

&#xff08;一&#xff09;问题描述 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/intersection-of-two-arrays/ …...

vue3实现规则编辑器

组件用于创建和编辑复杂的条件规则&#xff0c;支持添加、删除条件和子条件&#xff0c;以及选择不同的条件类型。 可实现json数据和页面显示的转换。 代码实现 &#xff1a; index.vue: <template><div class"allany-container"><div class"co…...

【快速上手】pyspark 集群环境下的搭建(Standalone模式)

目录 前言 &#xff1a; 一、spark运行的五种模式 二、 安装步骤 安装前准备 1.第一步&#xff1a;安装python 2.第二步&#xff1a;在bigdata01上安装spark 3.第三步&#xff1a;同步bigdata01中的spark到bigdata02和03上 三、集群启动/关闭 四、打开监控界面验证 前…...

中文NLP地址要素解析【阿里云:天池比赛】

比赛地址&#xff1a;中文NLP地址要素解析 https://tianchi.aliyun.com/notebook/467867?spma2c22.12281976.0.0.654b265fTnW3lu长期赛&#xff1a; 分数:87.7271 排名&#xff1a;长期赛:56&#xff08;本次&#xff09;/6990&#xff08;团体或个人&#xff09;方案&#xf…...

使用AddressSanitizer内存检测

修改cmakelist.txt&#xff0c;在project(xxxx)后面追加&#xff1a; option(MEM_CHECK "memory check with AddressSanitizer" OFF) if(MEM_CHECK)set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitizeaddress")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS…...

【Midjourney双色调风格终极指南】:20年视觉算法专家亲授3步精准复刻电影级Duotone效果

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;双色调美学的视觉起源与Midjourney适配性解析 双色调&#xff08;Duotone&#xff09;并非现代数字设计的发明&#xff0c;其视觉基因可追溯至19世纪的凹版印刷工艺——通过两块独立印版叠加单色油墨&#xf…...

企业微信SCRM与客户管理系统推荐:2026年这12家值得关注

2026年&#xff0c;一个企业要选客户管理系统&#xff0c;第一个要回答的问题是&#xff1a;你的客户在哪里&#xff1f;如果答案是"微信"&#xff0c;那企业微信SCRM就是最直接的路径——而在这个领域&#xff0c;微盛企微管家作为企业微信最大ISV&#xff0c;服务了…...

FRED案例:矩形微透镜阵列

介绍小透镜阵列可应用在很多方面&#xff0c;其中包含光束均匀化。本文演示了一个用于在探测器上创建均匀的非相干照度的成像微透镜阵列的设计。输入光束具有高斯轮廓&#xff0c;半宽度等于微透镜阵列大小&#xff0c;并且显示了其功率轮廓被微透镜阵列消除掉。系统输出简单示…...

5步掌握Sollumz:让GTA V模型在Blender中自由编辑

5步掌握Sollumz&#xff1a;让GTA V模型在Blender中自由编辑 【免费下载链接】Sollumz Grand Theft Auto V modding suite for Blender. This add-on allows the creation of modded game assets: 3D models, maps, interiors, animations, etc. 项目地址: https://gitcode.c…...

CentOS 7上编译glibc 2.28踩坑全记录:从gcc、make升级到最终成功

CentOS 7编译glibc 2.28实战&#xff1a;从工具链升级到系统兼容性破解 当你在CentOS 7服务器上部署最新开发工具时&#xff0c;突然弹出/lib64/libc.so.6: version GLIBC_2.28 not found的报错&#xff0c;这就像一记闷棍——系统基础库已无法满足现代软件需求。本文将带你经…...

在树莓派4B上实战:用Electron-builder打包Linux ARM应用(含Wayland配置)

树莓派4B实战&#xff1a;Electron应用打包与Wayland适配全指南 树莓派4B作为一款性价比极高的ARM开发板&#xff0c;已经成为许多开发者和爱好者的首选平台。随着Electron框架的普及&#xff0c;越来越多的开发者希望将自己的桌面应用移植到树莓派上运行。本文将带你从零开始&…...

3种简单方法解决Navicat Premium Mac试用期重置难题

3种简单方法解决Navicat Premium Mac试用期重置难题 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 你是否正在为Navicat Pre…...

2026局放仪选型与避坑:谁家局放仪更具性价比?

在高压配电网与智能电网的运维体系中&#xff0c;局部放电&#xff08;Partial Discharge, PD&#xff09;检测已成为保障电力资产安全、避免非计划停电的关键环节。根据《高压开关柜局部放电诊断定位技术研究与运用》的统计数据&#xff0c;在开关柜的各类故障中&#xff0c;绝…...

如何快速上手Hertz.dev:5分钟完成首个全双工音频对话

如何快速上手Hertz.dev&#xff1a;5分钟完成首个全双工音频对话 【免费下载链接】hertz-dev first base model for full-duplex conversational audio 项目地址: https://gitcode.com/gh_mirrors/he/hertz-dev 想要体验革命性的全双工音频对话技术吗&#xff1f;Hertz.…...

VSCodium终极指南:零监控的VS Code开源替代方案

VSCodium终极指南&#xff1a;零监控的VS Code开源替代方案 【免费下载链接】vscodium binary releases of VS Code without MS branding/telemetry/licensing 项目地址: https://gitcode.com/gh_mirrors/vs/vscodium VSCodium是一款基于Visual Studio Code源代码构建的…...