リンクリスト内の循環を検出するPythonプログラム

王林
リリース: 2023-09-06 17:05:08
転載
1337 人が閲覧しました

リンクリスト内のどのノードも NULL を指していない場合、リンクリスト内にサイクルがあると言われます。最後のノードはリンク リスト内の前のノードを指し、ループが作成されます。循環リンク リストには終点がありません。

以下の例では、最後のノード (ノード 5) は NULL を指していません。代わりに、ノード 3 を指し、ループを確立します。したがって、上記のリンクリストは無限にあります。

リンクリスト内の循環を検出するPythonプログラム

2 つのポインターを取得するためのアルゴリズムが速い場合と遅い場合がある

  • 両方のポインターは、最初はリンクされたリストの HEAD を指します。

  • 遅いポインタは常に 1 ずつ増加し、高速ポインタは常に 2 ずつ増加します。

  • いつでも、高速ポインタと低速ポインタが同じノードを指している場合、リンク リストにはサイクルがあると言われます。

最後のノードが 2 番目のノードを指す、次のリンク リストの例を考えてみましょう -

###例###

スロー ポインターと高速ポインターは両方とも同じノードを指します。したがって、指定されたリンク リストには循環が含まれていると結論付けることができます。

リーリー ###出力###

リンクリストでサイクルが検出されました。

ああああ

以上がリンクリスト内の循環を検出するPythonプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!