アルゴリズムとプログラミング
単方向連結リストの先頭にノードを1個挿入する操作の計算量として、適切なものはどれか。
ア.O(1)正解
イ.O(log n)
ウ.O(n)
エ.O(n²)
解説
連結リストの先頭挿入は「新ノードの next を旧先頭に向けて、先頭ポインタを新ノードに付け替える」だけ。要素数とは無関係に一瞬で終わります。
なぜ ア が正解か
先頭挿入は「new.next = head; head = new」の2命令で完了するため、リストの長さ n に依存せず常に O(1)。配列の先頭挿入が O(n)(全要素を後ろにずらす必要あり)と対照的で、ここが連結リストの最大の長所です。
出典: AI生成問題(学習用)