【leetcode面试经典150题】63. 删除链表的倒数第 N 个结点(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C++语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致)

【题目描述】

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

【示例一】

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

【示例二】

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

【示例三】

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

【提示及数据范围】

  • 链表中结点的数目为 sz
  • 1 <= sz <= 30
  • 0 <= Node.val <= 100
  • 1 <= n <= sz

【代码】

// 方法一:双指针class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* dummy = new ListNode(0, head);ListNode* first = head;ListNode* second = dummy;for (int i = 0; i < n; ++i) {first = first->next;}while (first) {first = first->next;second = second->next;}second->next = second->next->next;ListNode* ans = dummy->next;delete dummy;return ans;}
};// 方法二:栈class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* dummy = new ListNode(0, head);stack<ListNode*> stk;ListNode* cur = dummy;while (cur) {stk.push(cur);cur = cur->next;}for (int i = 0; i < n; ++i) {stk.pop();}ListNode* prev = stk.top();prev->next = prev->next->next;ListNode* ans = dummy->next;delete dummy;return ans;}
};

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go语言并发实战——日志收集系统(五) 基于go-ini包读取日志收集服务的配置文件

实现日志收集服务的客户端 前言 从这篇文章开始我们就正式进入了日志收集系统的编写&#xff0c;后面几篇文章我们将学习到如何编写日志收集服务的客户端,话不多说,让我们进入今天的内容吧&#xff01; 需要实现的功能 我们要收集指定目录下的日志文件&#xff0c;将它们发…

补充:js 制作qq、微信 的表情 缺少的微信表情图片

这篇文章是补充一下 这个csdn&#xff1a;js 制作qq、微信 的表情缺少的微信表情图片

Vue+Echarts 实现中国地图和飞线效果

目录 实现效果准备 实现效果 在线预览&#xff1a;https://mouday.github.io/vue-demo/packages/china-map/dist/index.html 准备 高版本的echarts&#xff0c;不包含地图数据&#xff0c;需要自己下载到项目中 1、地图数据下载 https://datav.aliyun.com/portal/school/at…

行为监控软件监控什么 行为监控软件下载

行为监控软件主要用于监控和分析用户的行为模式。这类软件可以监控的内容相当广泛&#xff0c;安企神作为典型的行为监控软件&#xff0c;可以从中窥见软件监控的内容&#xff1a; 找客服咨询价格 1、应用程序与上网行为管理 应用程序监控&#xff1a;跟踪员工使用各类软件的…

云渲染100的优惠活动有哪些?渲染100邀请码1a12

现在的云渲染平台有很多&#xff0c;每个平台都有各种活动&#xff0c;以广受好评的云渲染平台渲染100为例&#xff0c;我们来说下设计师怎样才能省钱又方便吧。 1、新用户福利 渲染100对新用户很友好&#xff0c;注册时填邀请码1a12有新手大礼包&#xff0c;可以渲染20多张小…

Redis底层数据结构之IntSet

目录 一、概述二、IntSet结构三、自动升级 上一篇 redis底层数据结构之Dict 下一篇 Redis底层数据结构之ZSkipList 一、概述 IntSet是一个存储整数值的集合&#xff0c;内部使用有序、无重复的数组保存数据。优点:节省内存空间。高效的查找、插入和删除操作。使用场景: 在集合…

StarRocks最佳实践经验

目录 一、部署 1.1 容量规划 1.2 基础环境配置 1.3 机器配置 1.3.1 FE节点 1.3.2 BE节点 1.4 部署方案 二、建模 2.1 建表规范 2.2 模型选择 2.3 排序列和前缀索引选择 2.4 分区选择 2.5 分桶选择 2.6 字段类型 2.7 索引选择 2.7.1 Bitmap索引 2.7.2 Bloom fi…

Element-plus DatePicker 日期选择器【正则校验时间范围】

效果图&#xff1a; 利用element-plus中的form表单验证完成效果。 <el-form-item label"检查计划截止日期&#xff1a;" prop"deadline"><el-date-pickerv-model"form.deadline"value-format"YYYY-MM-DD"style"width: …

【复现】金和OA-jc6 RCE漏洞_74

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 金和C6协同管理平台包括协同办公管理,人力资源管理,项目管理,客户关系管理,企业目标管理,费用管理,移动办公,微信办公等多个业务范…

2024年【北京市安全员-B证】模拟考试题库及北京市安全员-B证操作证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-B证模拟考试题库是安全生产模拟考试一点通总题库中生成的一套北京市安全员-B证操作证考试&#xff0c;安全生产模拟考试一点通上北京市安全员-B证作业手机同步练习。2024年【北京市安全员-B证】模拟考试…

ZeRO论文阅读

一.前情提要 1.本文理论为主&#xff0c;并且仅为个人理解&#xff0c;能力一般&#xff0c;不喜勿喷 2.本文理论知识较为成体系 3.如有需要&#xff0c;以下是原文&#xff0c;更为完备 Zero 论文精读【论文精读】_哔哩哔哩_bilibili 二.正文 1.前言 ①为什么用该技术&…

docker网络和模式

Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个…