ホームページ >ウェブフロントエンド >jsチュートリアル >ソートされたリンクリストから重複を削除するJavaScriptプログラム

ソートされたリンクリストから重複を削除するJavaScriptプログラム

PHPz
PHPz転載
2023-09-15 23:41:021080ブラウズ

用于从排序链接列表中删除重复项的 Javascript 程序

リンク リストは線形データ構造であり、整数で構成される並べ替えられたリンク リストが与えられます。いくつかの番号が重複または重複している可能性があるため、それらを削除する必要があります。指定されたリンク リストはソートされているため、単純にそれを反復処理し、while ループを使用して重複ノードを削除できます。ロジックをより深く理解するために、時間と空間の複雑さについての議論を通じて適切なコードを実装します。

###例### リーリー

手順

- 指定されたリンク リストはソートされているため、重複した要素を簡単に見つけることができ、前の値と等しい場合はスキップして削除できます。 コードがどのように実装されるかを見てみましょう

###方法###

以下の手順に従って問題を解決します -

まず、リンク リストのノードの構造を提供するクラスを作成します。

  • 2 番目に、リンク リストを出力し、既存のリンク リストに新しいノードを追加する関数を作成します。

  • 重複要素が削除されるリンク リストの先頭を渡す関数を作成します。この関数は、新しいリンク リストの先頭を返します。

  • まず、リンク リストが空かどうか、またはそのサイズが 1 に等しいかどうかを確認します。このような場合、ヘッドをそのまま戻します。

  • 2 つの変数を作成します。1 つはヘッドを示し、もう 1 つはヘッドの次のノードを示します。

  • 現在のノードと次のノードの値が等しい場合、次のノードを次のノードに移動し、現在のノードの次のノードのアドレスを更新します。

  • それ以外の場合は、次のノードに移動し、次のノードをその次のノードに移動します。

  • 最後に、ヘッダーを返し、そこに存在する値を出力します。

  • ###例###

    理解を深めるために、指定された手順をコードに実装してみましょう

    リーリー
  • 時間と空間の複雑さ

上記のコードの時間計算量は O(N) です。ここで、N は指定されたリンク リスト内のノードの総数です。リンクされたリストを一度だけ走査するだけであるため、時間計算量は線形です。

余分なスペースを使用していないため、上記のコードのスペース複雑さは O(1) です。

###結論は###

このチュートリアルでは、指定された並べ替えられたリンク リストから重複要素を削除する JavaScript プログラムを実装しました。リンクされたリストはソートされているため、すべての重複要素は互いに隣接しており、リストをトラバースすることで簡単に削除できます。実装したプログラムの時間計算量は O(N)、空間計算量は O(1) です。

以上がソートされたリンクリストから重複を削除するJavaScriptプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。