快慢指针的作用
针对链表的一些用法
快慢指针寻找链表中位数
初始时,快指针fast和慢指针slow均指向链表的左端点。我们将快指针fast向右移动两次的同时,将慢指针slow向右移动一次,直到快指针到达边界(即快指针到达右端点或快指针的下一个节点是右端点)。此时,慢指针slow对应的元素就是中位数。
// 知道右边界
func getMid(left, right *Node) *Node {
if left == nil {
return nil
}
fast := left
slow := left
for ;fast != right && fast.Next != right; {
slow = slow.Next
fast = fast.Next