当前位置:
首页 >
数据结构链表之单链表的快慢指针——3
发布时间:2024/7/5
58
豆豆
生活随笔
收集整理的这篇文章主要介绍了
数据结构链表之单链表的快慢指针——3
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
单链表之快慢指针
单链表的快慢指针简介
- 快慢指针指链表中定义两个指针,两个指针的移动速度一快一慢,一般快指针移动步长为慢指针的两倍
快慢指针适合解决的几个典型问题
先定义一个简单的节点
class Node:def __init__(self, item):self.item = itemself.next = Nonefirst = Node('aa') second = Node('bb') third = Node('cc') forth = Node('dd') fifth = Node('ee')first.next = second second.next = third third.next = forth forth.next = fifth
中间值问题
即当快指针fast遍历完链表时,慢指针slow刚好停在链表的中间处
中间位置对应的结点是cc
有环链表
- 有环链表定义:单链表中存在结点的指针往前指的链表称为有环链表
为链表创建一个环,执行has_ring函数返回True,注释创建的环,则返回False
有环链表入口
- 定义:当快慢指针相遇时,我们可以判定链表中存在环,此时,重新定义一个指针,指向链表的起点,这个指针的前进步长与慢指针的相同,当慢指针与“新”指针相遇时,所在节点就是环的入口
证明这一结点设计到数论知识,有兴趣可以研究,这里只进行实现
在有环链表的前提上,使用以下代码可判断环的入口
前面的有环链表时aa→bb→cc→dd→ee(→cc),因此其环入口是cc对应所在的节点
The entrance is: cc
总结
以上是生活随笔为你收集整理的数据结构链表之单链表的快慢指针——3的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【Pytorch神经网络理论篇】 05
- 下一篇: 【Pytorch神经网络理论篇】 04