快慢指针简单用法

0字
0分钟阅读
2024-07-22 23:12
技术笔记

定义

快慢指针指两个同向移动的指针,分别以不同的步长移动。主要涉及在[[链表]]中的使用。

应用

1. 判断链表是否包含闭环

两个快慢指针,快指针一次比满指针多走一个节点。当快指针追上慢指针的时候,则证明链表是闭环的。反之快指针会指向null。

代码实现

fast = slow = head
fast = fast->next->next
slow = fast->next
while(true) {
    if (fast == null || fast->next == null) {
        return false
    }
    if (fast == slow || fast->next == slow) {
        return true
    }
    fast = fast->next->next
    slow = slow->next
}

2. 寻找链表的中间节点

快指针是慢指针速度的二倍,满指针移动一个节点,快指针移动两个节点。当快指针移动到终点的时候慢指针正好在链表的中间位置。

3. 删除倒数第几个节点

快指针设置成比慢指针快需要删除的节点数量,当快指针知道终点的时候,慢指针正好在想要的位置。


发表评论

您的邮箱地址不会被公开。必填项已用*标注

评论列表

1 条评论

JosephPrelt

2026年02月06日 17:37:09

关注更新, 我体会到, 旅行让人焕然一新。谢谢 美好的心情。 <a href=https://iqvel.com/zh-Hans/a/%E4%B8%AD%E5%9B%BD/%E9%A6%99%E6%B8%AF%E6%98%9F%E5%85%89%E5%A4%A7%E9%81%93>香港星光大道</a> 我喜欢, 真实的旅行者分享建议。这个页面 就是 属于这里的。加油。