[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
以下のプログラムの空欄1,2を埋めて struct CELL *header;が示す双方向リスト
の並びを逆順にする関数void reverse() を完成させよ

struct CELL{
int value;
struct CELL *prev;
struct CELL *next;
};
struct CELL *header;
void reverse(void){
struct CELL *p1,*p2,*p3;
p1=NULL;
p2=header;
for(;p2!=NULL;){
p3=p2->next;
p2->【空欄1】=p1;
p2->【空欄2】=p3;
p1=p2;
p2=p3;
} }
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: [2007年7月30日8:00まで]
[5] その他の制限: 特になし
  期限が近いですがお願いいたします