私はインタビューでこれを尋ねられました。
リストは次のようになります。
a 1- > b n- > a 2- > b n-1 ...- > a n- > b 1- > NULL
そのような、a 1 <a 2 <... <a n
と
b 1 <b 2 <... <b n
インタビュアーは私に次の制約を課しました:
- リストを適切に並べ替える必要があります。つまり、要素のグループの代替要素を別のリストに削除することはできません。
- 単純な並べ替えアルゴリズムよりも、リストにあるパターンをどうにかして利用する必要があります。
面接中も今も解決策が思いつかなかった。:-(
編集:この単一リンクリストを並べ替えるコードをCで記述します。
Edit2:バブルソートからアイデアを借りて、そのパターンを利用できるとも言われました。しかし、それは「素朴な」短いものであってはなりません。
インタビュアーが人為的な制約を課すのは嫌いですが、ちょっと仕事は仕事です:-)