双指针


三、双指针

双指针算法:指的是在遍历对象的过程中,使用两个相同方向(快慢指针)或者相反方向(对撞指针 )的指针进行扫描,从而达到相应的目的。双指针比较灵活,可以大大降低时间复杂度,可用在数组,单链表等数据结构中。

快慢指针

一快一慢,步长一大一小。例如,是否有环问题(看慢指针是否能追上快指针),单链表找中间节点问题(快指针到单链表结尾,慢指针到一半)。

环形链表 141

环形链表 142

287

对撞指针

一左一右向中间逼近。