赞
踩
快慢指针解决链表问题尤其有效
一般看到链表的题都要下意识地想起双指针
一个快指针,一个慢指针
快指针一次进两步,慢指针一次进一步
如果链表是没有环的话,快指针就是会走到链表的尽头,指向空(NULL)
而如果链表是有环的话,快指针最后就会比慢指针走快一圈,然后相遇。
快指针与慢指针相遇之后,让慢指针重新回到头节点,再次相遇的时候,慢指针所对应的位置就是环的起点
原理:
快指针一次进两步
慢指针一次进一步
当快指针走到头的时候
慢指针的指向就是链表的中点(奇数)
偶数就是中点偏右
只要是有序的数组,首先就要先想到双指针
力扣题号:26.去除排序数组中的重复项
因为涉及到原地修改,所以不能用哈希表和栈等结构去做
因此我们得用快慢指针,让快指针探路,慢指针待命
通过判断快指针与慢指针对应的值来完成遍历
代码:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。