难度: 中等

leetcode地址:

https://leetcode.com/problems/remove-nth-node-from-end-of-list/description/

分析:

1. 这题解题思路也不难,两个指针fast, slow,fast先走n步,然后两个一起走,fast走到最后为null的时候,slow正好走到倒数第n个节点,

但是在单向链表中删除一个节点其实需要知道它的前直接点,所以我们需要少走一步,即走到fast为最后一个节点的时候就要停止,这个判断条件就是fast.next==null

2. 另外我们需要分析一下特殊情况,当n正好等于链表长度时,这时实际上要删除的是头结点,这个判断条件是当fast 指针第一轮走n步之后,fast==null,这种情况直接返回head.next

代码:

public class RemoveNthFromEnd {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode fast=head,slow=head;
for(int i=0;i<n;i++){
fast=fast.next;
}
if(fast==null){
return head.next;
}
while(fast.next!=null){
fast=fast.next;
slow=slow.next;
}
slow.next=slow.next.next;
return head;
}
}

最新文章

  1. MBR与GPT
  2. Emoji表情符号录入MySQL数据库失败解决
  3. SharePoint 2013 中的 PowerPoint Automation Services
  4. ECLIPSE/JAVAWEB (二)三大框架之Hibernate框架 持续更新中...
  5. iOS开发工具篇-AppStore统计工具 (转载)
  6. linux编程之内存映射
  7. cache是什么文件?
  8. node-webkit教程(16)调试typescript
  9. NODE学习:利用nodeJS去抓网页的信息
  10. windows中快速停掉占用某端口的进程的方法
  11. IE6 7 8BUG锦集
  12. ExtJs 第二章,Ext.form.Basic表单操作
  13. 7、第七节课,js逻辑运算
  14. dubbo Forbid blacklist
  15. nodejs+mongodb+vue前后台配置ueditor
  16. QT中正则表达式的简单说明
  17. 通过DeviceIoControl读磁盘的方式读取独占文件内容
  18. spark DataFrame
  19. javascript面向对象中继承实现?
  20. 【题解】Luogu SP8791 DYNALCA - Dynamic LCA

热门文章

  1. 团队作业-Beta冲刺(4/4)
  2. PyCharm虚拟环(Project Interpreter)手动安装第三方包图解教程
  3. git 项目最常用命令总结
  4. Xamarin图表开发基础教程(9)OxyPlot框架
  5. Spring cloud微服务安全实战-7-10ELK日志采集架构优化
  6. CSS製作動畫效果(Transition、Animation、Transform)
  7. ObjectARX开发VC版本对照表R14~AutoCAD2020
  8. 谷歌浏览器调试swoole长连接方法
  9. java8新特性1--Lambda表达式
  10. 【vim小记】vim的高效移动