honeyhhhh / honeyhhhh.github.io

0 stars 0 forks source link

快慢指针 | Zion #16

Open honeyhhhh opened 5 years ago

honeyhhhh commented 5 years ago

https://zionlove.site/%E5%BF%AB%E6%85%A2%E6%8C%87%E9%92%88/

题目:快速找到未知长度单链表的中间节点。普通的方法很简单,首先遍历一遍单链表以确定单链表的长度L。然后再次从头节点出发循环L/2次找到单链表的中间节点。算法复杂度为:O(L+L/2)=O(3L/2)。 利用快慢指针原理:设置两个指针search、mid都指向单链表的头节点。其中 search的移动速度是mid的2倍。当*search指向末尾节点的时候,mid正好就在中间了。这也是标尺的思想。O(L