题目描述

给定一个链表,删除链表的倒数第n个节点并返回链表的头指针
例如,

 给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1->2->3->5.

备注:

题目保证n一定是有效的
请给出请给出时间复杂度为O(n)的算法

双指针

public class RemoveNthFromEndMe {public static void main(String[] args) {RemoveNthFromEndMe removeNthFromEndMe = new RemoveNthFromEndMe();ListNode l1 = new ListNode(1);ListNode l2 = new ListNode(2);ListNode l3 = new ListNode(3);ListNode l4 = new ListNode(4);ListNode l5 = new ListNode(5);ListNode l6 = new ListNode(6);l1.next = l2;l2.next = l3;l3.next = l4;l4.next = l5;l5.next = l6;removeNthFromEndMe.removeNthFromEnd(l1,2);}/**** @param head ListNode类* @param n int整型* @return ListNode类*/public ListNode removeNthFromEnd (ListNode head, int n) {if(null == head){return null;}ListNode pre = head;ListNode post = head;// 1 2 3 4 5 6int index = 0;while(index < n){pre = pre.next;index++;}while(null != pre && pre.next != null){post = post.next;pre = pre.next;}if(null == pre){head = post.next;}else {post.next = post.next.next;}return head;}
}

常考数据结构与算法:删除链表的倒数第n个节点相关推荐

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

    思路:双指针法(链表带头结点) 指针p1和p2都指向链表头部,这时p2先向前移动N部,这时p2和p1相差N部.然后p2和p1一起移动,当p2移动到最后一个节点时,p1指向倒数第N个节点. 很容易,代码 ...

  2. 常考数据结构与算法:单链表的排序

    题目描述 给定一个无序单链表,实现单链表的排序(按升序排序). 输入 [1,3,2,4,5] 返回值 {1,2,3,4,5} public class SortInListME {public sta ...

  3. 常考数据结构与算法:反转链表

    题目描述 输入一个链表,反转链表后,输出新链表的表头. 示例1 输入 {1,2,3} 返回值 {3,2,1} public class ReserverAlgo {public static void ...

  4. Lc19删除链表的倒数第N个节点

    考过01 Lc19删除链表的倒数第N个节点 处理好一下几个问题就能够做出来: 注意有可能删除头结点,凡是头结点会变化的,习惯建一个虚拟头结点,让这个虚拟头结点指向链表的头结点.如果不用虚拟头节点,需要 ...

  5. 常考数据结构与算法:输出二叉树的右视图

    题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...

  6. 常考数据结构与算法:求二叉树的层序遍历

    题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...

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

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

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

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

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

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

最新文章

  1. HSSFWorkbook 与 XSSFWorkbook
  2. dorado listener属性
  3. python爬虫实例-Python爬虫案例集合
  4. Oracle 日志原理剖析
  5. 限界分支法:01背包问题,优先级队列(包含解的追踪)
  6. Java Process.exitValue Process.waitFor()
  7. mknod 创建内核设备文件【原创】
  8. BAT 鼎立格局被打破,2019 年这些互联网公司是程序员跳槽首选!
  9. oracle 日志解析工具,Oracle logminer 日志分析工具使用
  10. verifycode.php,verifycode.php
  11. 多年前的csdn账号找回啦
  12. 蓝屏代码大全 蓝屏全攻略
  13. 面试中常被问到(七)封装继承多态知多少
  14. 项目管理常用文档表格模板二
  15. 《网站推荐》音乐下载, 系统下载
  16. 伟森盛业:法大大电子合同助力供应链数字创新
  17. 关于删除安装ESXI里的VIB小记。
  18. docker 查询ip
  19. Resco MobileForms Toolkit 2010的破解
  20. 微服务链路追踪SkyWalking第一课 SkyWalking简介

热门文章

  1. 算法题26 复杂链表的复制
  2. LightOJ1032 Fast Bit Calculations(数位DP)
  3. C++ 关于方法传值
  4. (转)fastcgi简介
  5. 建立行政效果公布体制
  6. Loadrunner 8.1 下载
  7. 函数参数---动态参数
  8. IntelliJ IDEA快捷键总结
  9. UVA 11627 Slalom(二分)
  10. Android中使用File文件进行数据存储