コメントではthis answerという単純なリンクリストの反転は、O(nlog)でなくO(nlog)でしかできないという考えが浮上しています。単純なリンクリストを反転するためのO(nlog(n))アルゴリズムはありますか?
これは間違いですが、O(n)反転は問題ではありません。リストをたどって、ポインタを移動するだけです。 3つの一時的なポインタが必要です - それは一定の余分なメモリです。
私は、O(nlog(n))がO(n)より悪く(遅い)ことを完全に理解しています。
しかし、好奇心から - 単純にリンクされたリストを反転するためのO(nlog(n))アルゴリズムは何ですか?一定の余分なメモリを有するアルゴリズムが好ましい。
はO(n)と行い、一致する値から新しいリンクリストを作成
あなたの 'O(n)'アルゴリズム**は** 'O(n logN)'アルゴリズムなので、あなたの質問に対する答えは修正されていないO(n)アルゴリズムです。 'O(n log n)'はn log nより高速ではなく、 'O(n)'、さらには 'O(1)'を含むアルゴリズムの集合です。両方向で同じ漸近的境界にあるものに限定するには、 'Θ(n)'と言う必要があります。 (実際には、ほとんどの人が 'O(n)'と言うとき、 'Θ(n)'を意味します) – Brian