点击此处返回总目录

 

【题目】

19 删除链表的倒数第n个结点

 

【分析】

最简单的方法就是遍历一趟,求出总长度,然后计算一下要删掉第几个结点。然后第二趟删除即可。

这种方法太简单,不写了。我们来说一下一趟扫描的写法。

设置快慢指针。快指针首先走n个结点,然后一起走。当快指针走到最后一个的时候,慢指针刚好走到倒数第(n-1)个。

 

【代码】

19 删除链表的倒数第n个结点

 

需要注意的是,第19行这里。

如果q=null,说明走了n步之后走到了结尾的后一个元素。比如, 1->2->3->4->5。n=5时,刚好走到null。说明要删除的就是第一个元素。故返回head.next即可。

 

 

【结果】

19 删除链表的倒数第n个结点

 

 

 

 

 

相关文章:

  • 2021-06-20
  • 2021-10-31
  • 2021-10-21
  • 2021-06-03
  • 2021-08-02
  • 2021-10-24
  • 2022-12-23
猜你喜欢
  • 2021-06-05
  • 2021-11-29
  • 2021-11-05
  • 2021-11-27
  • 2021-08-11
  • 2022-12-23
  • 2021-12-30
相关资源
相似解决方案