双指针是指一个快指针一个慢指针。
双指针可以原地去除链表中的重复元素:题号,明天写上。
26,27,283,83。字符串原地去重,思路:定义快慢指针,如果(快指针不等于慢指针),慢指针+1.value等于快指针所在的值,最后记录慢指针所在的位置就是结束的位置。
应用:
1.141判断链表有没有环,思想:如果有环跑得快的会追上慢的(快指针前进两步),如果没有,跑的快的会返回null。
2.142如果有环,返回环的位置。思想:当快慢指针相遇时,让其中任一个指针指向头节点,然后让它俩以相同速度前进,再次相遇时所在的节点位置就是环开始的位置。
3.876返回链表的中心位置,让快指针前进两步,慢指针前进一步。最终慢指针会在中心的位置。
4.删除链表倒数第n个元素,
双指针技巧直接秒杀五道算法题,这个链接的东西还得继续看
5.5返回最长的回文子串,思路:双指针标记中心坐标,分别往两边移动,直到两个字符不相等,遍历中心坐标,返回最长的字符串。