系列文章目录
数组
栈
双指针
思路总结
双指针
常见的双指针方式
同速指针:链表上两个指针,一个先出发,另一个后出发并以相同的速度跟随。
求链表的逆:通过临时指针让双指针同步前行
求链表倒数第k个元素:先让其中一个指针向前走k步,接着两个指针以同样的速度一起
向前进,直到前面的指针走到尽头了,则后面的指针即为倒数第k个元素
快慢指针:链表上两个指针从同一节点出发,其中一个指针前进速度比另一个指针快(比
如,是另一个指针的两倍)
计算链表的中点:快慢指针从头节点出发,每轮迭代中,快指针向前移动两个节点,慢
指针向前移动一个节点,最终当快指针到达终点的时候,慢指针刚好在中间的节点
判断链表是否有环:快慢指针从头节点出发,如果链表中存在环,两个指针最终会在环
中相遇
求链表中环的长度:只要相遇后一个不动,另一个前进直到相遇算一下走了多少步就。
————————————————
版权声明:本文为优快云博主「uncle_ll」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/uncle_ll/article/details/123298937