一日一コード 連結リストを逆にする。
リストの扱いってかなり難しい。どの変数が何を指してるんだかさっぱり。
メモリエラーの後ろにこそこそ隠れてるからデバッグも大変。
肝心な処理部分。
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; //一番最後の要素が一番最初になる。。
}
詳しくはこっち見てくだされ。