質問: 線形リストを使ったCプログラミングの問題です。
回答: このコードは、リストへの追加が head の位置へ挿入するというもの、リストの表示が head から末尾に順に辿るもの、となっています。そのため表示の順番は後に登録したものが先になります。 逆順に表示するためには、(1) リストへの追加を末尾への挿入にする、(2) リストの表示を末尾からheadに向けて表示する、のどちらかをすればよいです。 末尾に追加するには、追加のときに末尾までたどる、末尾を指すポインタを用意しておく、といった方法があります。 末尾から head に向かって表示する方法としては、再帰を使う方法、リンクを双方向にして逆方向に辿れるようにする方法、などが考えられます。