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

【力扣链表篇】19.删除链表的倒数第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]

提示:

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

解答:

首先,这种问题可以使用双指针(快慢指针)来解决,先让快指针移动N+1步骤(N指第N个节点),慢指针不动,最后快慢指针一起移动,移动到快指针指向链表最后的NULL停止。

class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* xu = new ListNode(0,head);ListNode* slow=xu;ListNode* fast=head;//删除第n个节点,需要快指针移动n+1步,所以多的+1这一步就让他指向头节点就可以了while(n--){//快指针走n步fast=fast->next;}while(fast!=NULL){//快慢指针一起走,走到快指针指向空fast=fast->next;slow=slow->next;}slow->next=slow->next->next;//此时慢指针指向想要删除节点的前一个位置,可以进行删除了return xu->next;}
};

http://www.lryc.cn/news/2404733.html

相关文章:

  • .Net Framework 4/C# 集合和索引器
  • 如何使用Jmeter进行压力测试?
  • Grafana-ECharts应用讲解(玫瑰图示例)
  • 洛谷P1591阶乘数码
  • 前端vue3 上传/导入文件 调用接口
  • 概述侧边导航的作用与价值
  • Python训练营-Day22-Titanic - Machine Learning from Disaster
  • FreeCAD:开源世界的三维建模利器
  • 指针的定义与使用
  • 嵌入式里的时间魔法:RTC 与 BKP 深度拆解
  • Java项目中常用的中间件及其高频问题避坑
  • 图卷积网络:从理论到实践
  • ES 学习总结一 基础内容
  • Maven 构建缓存与离线模式
  • 基于51单片机的光强控制LED灯亮灭
  • 【Linux操作系统】基础开发工具(yum、vim、gcc/g++)
  • gopool 源码分析
  • 【Survival Analysis】【机器学习】【3】 SHAP可解釋 AI
  • ModuleNotFoundError No module named ‘torch_geometric‘未找到
  • iOS 门店营收表格功能的实现
  • 链表题解——环形链表【LeetCode】
  • Cell-o1:强化学习训练LLM解决单细胞推理问题
  • 求解插值多项式及其余项表达式
  • vue3: bingmap using typescript
  • vue3前端实现导出Excel功能
  • 超大规模芯片验证:基于AMD VP1902的S8-100原型验证系统实测性能翻倍
  • 【工作记录】接口功能测试总结
  • Dubbo Logback 远程调用携带traceid
  • 【element-ui】el-autocomplete实现 无数据匹配
  • NLP学习路线图(二十):FastText