给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.

说明:

给定的 n 保证是有效的。

进阶:

你能尝试使用一趟扫描实现吗?

解法:

/*** 思路1:朴素法,第一遍遍历找到链表长度,第二遍找到应删除元素的正序index* @param head* @param n* @return*/public ListNode removeNthFromEnd(ListNode head, int n) {int len=0;ListNode node = head;while(node!=null) {len++;node=node.next;}node=head;if(len==n) {return head.next;}for(int i=0;i<(len-n-1);i++) {node=node.next;}node.next=node.next.next;return head;}

思路2:双指针法

/*** 思路2:双指针法* 指针1与指针2间隔为n,当指针2到达尾部的时候,指针1的next就是应删除的元素* @param head* @param n* @return*/public ListNode removeNthFromEnd(ListNode head, int n) {ListNode ya = new ListNode(0);ya.next = head;ListNode p1 = ya, p2=ya;for(int i=0;i<n;i++) {p1=p1.next;}while(p1.next!=null) {p1=p1.next;p2=p2.next;}p2.next = p2.next.next;return ya.next;}

2019-03-18-算法-进化(删除链表的倒数第N个节点)相关推荐

  1. 双向链表删除节点时间复杂度_「十分钟学算法」删除链表的倒数第N个节点

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1 ...

  2. Java 算法之 “删除链表中倒数第k个节点”【钢镚核恒】

    删除链表中倒数第k个节点 简介 题目描述:给定⼀个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点[Leetcode] 链表中倒数第k个节点 , 和这篇文章使用的方法一致,就是变成找到倒数k+ ...

  3. leetcode算法题--删除链表的倒数第N个节点

    原题链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 双指针法 ListNode* removeNthFrom ...

  4. 常考数据结构与算法:删除链表的倒数第n个节点

    题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1-& ...

  5. Leetcode算法Java全解答--19. 删除链表的倒数第N个节点

    Leetcode算法Java全解答–19. 删除链表的倒数第N个节点 文章目录 Leetcode算法Java全解答--19. 删除链表的倒数第N个节点 题目 想法 结果 总结 代码 我的答案 大佬们的 ...

  6. 【算法系列之八】删除链表的倒数第N个节点

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1 ...

  7. 【亡羊补牢】挑战数据结构与算法 第59期 LeetCode 19. 删除链表的倒数第N个节点(链表)

    仰望星空的人,不应该被嘲笑 题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. ...

  8. 刻意练习:LeetCode实战 -- Task11. 删除链表的倒数第N个节点

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  9. LeetCode第19题;删除链表的倒数第N个节点

    19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删 ...

最新文章

  1. C++ Stacks(堆栈)
  2. html5怎么改为vue_【面试需要Vue全家桶】一文带你看透Vue前端路由
  3. VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法
  4. grep的时候Binary file (standard input) matches 怎么解决?
  5. VS2010 + OpenCL 1.1 @ Windows 7 + AMD HD6870
  6. C与C++存储空间布局
  7. csv逗号分隔符转换_文件系统(02):基于SpringBoot管理Xml和CSV
  8. QQ输入法 for iPhone2.3
  9. C# 压缩解压Zip文件
  10. layui + tp5分页(非数据表格渲染形式)
  11. 数据库入口和密码:维普、万方和cnki(转)
  12. 【MDCC专访】郑晔:用JavaScript征服物联网应用开发
  13. 广西行政村数据shp_全国 shp 矢量数据汇总(四):全国行政区划基础矢量数据(精确到乡镇级别)...
  14. JAVA代码实现人物照片的人像分割 | 百度AI
  15. 【程序风云】程序人生风云
  16. 如何优雅的用 Nginx 在公网上快速搭建一个加密数据通道
  17. 图解三次握手与四次挥手
  18. 旋翼回收火箭系列博客1——研究生未来飞行器设计大赛火箭赛道介绍及分析
  19. 项目经理为什么一直遭人烦
  20. 几种论文排版工具(texlive, amot, texmaker)——新手的摸索过程

热门文章

  1. linux生成地图,ROS中利用V-rep进行地图构建仿真
  2. java程序员遇到的问题_JAVA程序员最常遇见的10个异常
  3. 为什么当代人越来越不快乐?
  4. 用3年时间破解学界200多年难题,年仅21岁的天才竟因谈了一场恋爱挂掉了.........
  5. 干货整理:处理不平衡数据的技巧总结!收好不谢
  6. java launcher 下载_Java Launcher下载并安装
  7. java iter是否存在_Java中ListIterator和Iterator的区别以及ListIterator的应用
  8. android的热点分配ip_Android 得到连接热点的ip的方法
  9. freertos源码详解与应用开发 pdf_互联网企业面试必问Spring源码?搞定Spring源码,看完这篇就够了...
  10. html如何显示上传进度条,HTML5 Ajax文件上传进度条如何显示