码迷,mamicode.com
首页 > 其他好文 > 详细

Faster\Slower 快慢指针的应用

时间:2014-07-26 09:52:17      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:strong   应用   amp   leetcode   指针   链表   记录   移动   

leetcode很多题目都是利用快慢指针来解决题目,下面具体讲解下快慢指针。

 

概念

快指针在每一步走的步长要比慢指针一步走的步长要多。快指针通常的步速是慢指针的2倍。在循环中的指针移动通常为:faster = faster.next.next, slower = slower.next.

 

应用

1. 用来找中点或中位数

2. 用来判断链表是否有环以及寻找环入口

3. 题目中含有:倒数第n个,那么设置快指针步长为n,然后快慢指针同时以同一速度走,用慢指针寻找倒数第n个

 

注意

1. 通常需要特别留意链表长度的奇偶性

2. 如果快指针步速为慢指针步速2倍,循环条件为:faster.next!=null&&faster.next.next!=null

3. 当自行设置快指针步长时, 要考虑步长值等于链表长度的特殊情况

4. 查找倒数第n个时,如果要求删除链表元素时,不要忘记记录应被删除元素的前一个元素

Faster\Slower 快慢指针的应用,布布扣,bubuko.com

Faster\Slower 快慢指针的应用

标签:strong   应用   amp   leetcode   指针   链表   记录   移动   

原文地址:http://www.cnblogs.com/springfor/p/3869308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!