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

删除链表的倒数第N个节点-力扣

第一种方法是使用前后指针,前指针先向前走n+1步,然后前后指针同时向前,当前指针指向NULL时,后指针正好指向需要删除的节点的前一个节点,操作后指针删除即可。
代码如下:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode * dummyhead = new ListNode(0);dummyhead->next = head;ListNode * fast = dummyhead;ListNode * slow = dummyhead;while(n--){fast = fast->next;}fast = fast->next;while(fast != NULL){slow = slow->next;fast = fast->next;}ListNode * tmp = slow->next;slow->next = slow->next->next;delete tmp;head = dummyhead->next;return head;}
};

第二种解法时使用递归,每次递归则用一个k进行计数,当k与n相等时,跳过这个节点,不进行返回。代码如下:

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

相关文章:

  • GitLab的原理及应用详解(三)
  • 深入解析kube-scheduler的算法自定义插件
  • 软件系统安全设计规范(word原件)
  • 使用Golang开发一个HTTP客户端请求命令行工具
  • Spring 中常用的手动装载 bean 方法
  • 代码随想录训练营Day 38|力扣435. 无重叠区间、763.划分字母区间、56. 合并区间
  • docker实战之搭建MYSQL8.0主从同步
  • C++11function包装器的使用
  • 如何使用Java发送SOAP请求与webservice 服务进行通信
  • 如何搭建springBoot项目中的全局异常处理和自定义异常处理
  • golang通过go-aci适配神通数据库
  • 【全网最全】2024电工杯数学建模B题问题一14页论文+19建模过程代码+py代码+2种保奖思路+数据等(后续会更新成品论文等)
  • CCF-CSP认证 2024年3月 4.化学方程式配平
  • SpringBootWeb 篇-深入了解 Mybatis 概念、数据库连接池、环境配置和 Lombok 工具包
  • SQL、Mongo、Redis一般适用于那些场景
  • [译]前端离线指南(上)
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2017-09-12 前端日报
  • canvas绘制圆角头像
  • Django 博客开发教程 8 - 博客文章详情页
  • gf框架之分页模块(五) - 自定义分页
  • github从入门到放弃(1)
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • mockjs让前端开发独立于后端
  • use Google search engine
  • 分享一份非常强势的Android面试题
  • 工作中总结前端开发流程--vue项目
  • 构建二叉树进行数值数组的去重及优化
  • 规范化安全开发 KOA 手脚架
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 听说你叫Java(二)–Servlet请求
  • 微信小程序--------语音识别(前端自己也能玩)
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 追踪解析 FutureTask 源码
  • ​水经微图Web1.5.0版即将上线
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (13)Hive调优——动态分区导致的小文件问题
  • (3)(3.5) 遥测无线电区域条例
  • (9)目标检测_SSD的原理
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)计算机毕业设计ssm电影分享网站
  • (过滤器)Filter和(监听器)listener
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (十五)使用Nexus创建Maven私服
  • (实战篇)如何缓存数据
  • (未解决)macOS matplotlib 中文是方框
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET MVC 验证码
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件