常考数据结构与算法:删除链表的倒数第n个节点
题目描述
给定一个链表,删除链表的倒数第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个节点相关推荐
- 算法--删除链表的倒数第N个节点
思路:双指针法(链表带头结点) 指针p1和p2都指向链表头部,这时p2先向前移动N部,这时p2和p1相差N部.然后p2和p1一起移动,当p2移动到最后一个节点时,p1指向倒数第N个节点. 很容易,代码 ...
- 常考数据结构与算法:单链表的排序
题目描述 给定一个无序单链表,实现单链表的排序(按升序排序). 输入 [1,3,2,4,5] 返回值 {1,2,3,4,5} public class SortInListME {public sta ...
- 常考数据结构与算法:反转链表
题目描述 输入一个链表,反转链表后,输出新链表的表头. 示例1 输入 {1,2,3} 返回值 {3,2,1} public class ReserverAlgo {public static void ...
- Lc19删除链表的倒数第N个节点
考过01 Lc19删除链表的倒数第N个节点 处理好一下几个问题就能够做出来: 注意有可能删除头结点,凡是头结点会变化的,习惯建一个虚拟头结点,让这个虚拟头结点指向链表的头结点.如果不用虚拟头节点,需要 ...
- 常考数据结构与算法:输出二叉树的右视图
题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...
- 常考数据结构与算法:求二叉树的层序遍历
题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...
- 【亡羊补牢】挑战数据结构与算法 第59期 LeetCode 19. 删除链表的倒数第N个节点(链表)
仰望星空的人,不应该被嘲笑 题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. ...
- 双向链表删除节点时间复杂度_「十分钟学算法」删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1 ...
- Leetcode算法Java全解答--19. 删除链表的倒数第N个节点
Leetcode算法Java全解答–19. 删除链表的倒数第N个节点 文章目录 Leetcode算法Java全解答--19. 删除链表的倒数第N个节点 题目 想法 结果 总结 代码 我的答案 大佬们的 ...
最新文章
- HSSFWorkbook 与 XSSFWorkbook
- dorado listener属性
- python爬虫实例-Python爬虫案例集合
- Oracle 日志原理剖析
- 限界分支法:01背包问题,优先级队列(包含解的追踪)
- Java Process.exitValue Process.waitFor()
- mknod 创建内核设备文件【原创】
- BAT 鼎立格局被打破,2019 年这些互联网公司是程序员跳槽首选!
- oracle 日志解析工具,Oracle logminer 日志分析工具使用
- verifycode.php,verifycode.php
- 多年前的csdn账号找回啦
- 蓝屏代码大全 蓝屏全攻略
- 面试中常被问到(七)封装继承多态知多少
- 项目管理常用文档表格模板二
- 《网站推荐》音乐下载, 系统下载
- 伟森盛业:法大大电子合同助力供应链数字创新
- 关于删除安装ESXI里的VIB小记。
- docker 查询ip
- Resco MobileForms Toolkit 2010的破解
- 微服务链路追踪SkyWalking第一课 SkyWalking简介