一日一コード 連結リストを逆にする。

リストの扱いってかなり難しい。どの変数が何を指してるんだかさっぱり。
メモリエラーの後ろにこそこそ隠れてるからデバッグも大変。

肝心な処理部分。


List *reverseList(List *first)
{
List *pre, *cur, *next; // 1個前のリスト、今アクセスしているリスト、次の要素。
pre = NULL; cur = first;

while(cur != NULL)
{
next = cur->next; //次の金庫の番号をメモ。
cur->next = pre; //矢印の向きを変える。
pre = cur; cur = next;
}

return pre; //一番最後の要素が一番最初になる。。
}

詳しくはこっち見てくだされ。