![Go语言实现LeetCode算法:移除链表末尾起第N个节点](http://img.jiangsulong.com/220404/10092R2c-0.jpg)
文章插图
1 题目描述给定一个链表,移除其自末尾起第N个节点后返回该链表 。
例子:
输入:给定链表1->2->3->4->5,且n=2题目出处:
【Go语言实现LeetCode算法:移除链表末尾起第N个节点】输出:移除链表末尾起第2个节点4后,链表变为1->2->3->5 。
https://leetcode.com/problems/remove-nth-node-from-end-of-list/
2 解决思路两个指针初始均指向链表头部,然后让第一个指针先走N步;
这时,第二个指针开始与第一个指针同时走,当第一个指针到达尾部节点时,第二个指针刚好到达要移除节点的上一个节点 。
这样,将第二个指针的下一个节点指向下下个节点即为所求 。
注:特殊情况为,第一个指针走了N步时,所指的是尾节点的下一个节点,即nil,这时说明要移除的节点是头节点,该种情况返回头节点的下一个节点即可 。
3 golang实现代码https://github.com/olzhy/leetcode/blob/master/19_Remove_Nth_Node_From_End_Of_List/test.go
![Go语言实现LeetCode算法:移除链表末尾起第N个节点](http://img.jiangsulong.com/220404/10092UH5-1.jpg)
文章插图
原文链接:https://leileiluoluo.com/posts/leetcode-remove-nth-node-from-end-of-list.html
本文作者:磊磊落落的博客,原创授权发布
推荐阅读
- 浅谈Python深浅拷贝
- 简单web服务器的实现思路
- 十分钟看懂数据库——数据库入门级语言总结
- Java架构-如何设计实现真正的响应式微服务系统?
- 远程过程调用RPC的实现原理:动态代理
- Nginx实现基础Web架构
- 世界上最奇妙的东西就是语言 神奇的语言
- Iphone与windows如何实现文件1秒互传?
- 详解阿里P7架构师是怎么在Spring中实现事务暂停
- 机器学习10种经典算法的Python实现