並べ替えられたリンク リストから重複を削除する
再帰呼び出しは次のノードに戻ります。したがって、次の要素では、
current_node->next = our_function(node->next) のような再帰関数を呼び出します。
再帰を信頼し、current_node->next には重複要素のないリンク リストが含まれるようになりました。メインの方法では、リストに最初から入札します -
リーリー ###アルゴリズム###
再帰を使用して並べ替えられたリンク リストから重複を削除するプロセスは次のとおりです。
ステップ 3 は再帰的に実行され、リストがそれ自体から重複する値をすべて削除するまで、各ノードをヘッドとして扱います。 。 ステップ 5
- 取得される出力は、異なる値を持つソートされたリンク リストです。###例### たとえば、次の値を持つソートされたリンク リストがあります -
リーリー
その後、現在のノードがリンク リストに含まれているかどうかを確認します。現在のノード -> 次のノードから取得した満足のいくリンク リストがそのノードと同じ値を持つ場合は、そのノードを含めません。そうでない場合は、そのノードを含めます。Note
- 現在のノードが NULL の場合、再帰の基本条件を返します。###出力### リーリー ###結論は###
再帰呼び出しで見たように、次の呼び出しで問題の残りの部分で期待される結果が達成されると信じています。現在の副問題を解決したところです。これを念頭に置いて、現在の要素を含めることができるかどうかを確認し、リンク リストの残りを再帰呼び出しに渡し、その時点から有効なリンク リストが得られることを信頼します。リンクされたリスト全体を走査すると、このメソッドの時間計算量は O(n) になります。以上が再帰を使用してソートされたリンクリストから重複を削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。