数据结构链表之单链表的快慢指针——3
生活随笔
收集整理的這篇文章主要介紹了
数据结构链表之单链表的快慢指针——3
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
單鏈表之快慢指針
單鏈表的快慢指針簡介
- 快慢指針指鏈表中定義兩個指針,兩個指針的移動速度一快一慢,一般快指針移動步長為慢指針的兩倍
快慢指針適合解決的幾個典型問題
先定義一個簡單的節(jié)點
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
有環(huán)鏈表
- 有環(huán)鏈表定義:單鏈表中存在結點的指針往前指的鏈表稱為有環(huán)鏈表
為鏈表創(chuàng)建一個環(huán),執(zhí)行has_ring函數(shù)返回True,注釋創(chuàng)建的環(huán),則返回False
有環(huán)鏈表入口
- 定義:當快慢指針相遇時,我們可以判定鏈表中存在環(huán),此時,重新定義一個指針,指向鏈表的起點,這個指針的前進步長與慢指針的相同,當慢指針與“新”指針相遇時,所在節(jié)點就是環(huán)的入口
證明這一結點設計到數(shù)論知識,有興趣可以研究,這里只進行實現(xiàn)
在有環(huán)鏈表的前提上,使用以下代碼可判斷環(huán)的入口
前面的有環(huán)鏈表時aa→bb→cc→dd→ee(→cc),因此其環(huán)入口是cc對應所在的節(jié)點
The entrance is: cc
總結
以上是生活随笔為你收集整理的数据结构链表之单链表的快慢指针——3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Pytorch神经网络理论篇】 05
- 下一篇: 【Pytorch神经网络理论篇】 04