teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

内容修正

2015/06/21 09:09

投稿

kt3302y
kt3302y

スコア27

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,13 @@
1
1
  下記のコードはノードのデータを逆順に表示するプログラムです。
2
2
  私の考えとしてはノードを逆順にしてからそれを表示するという手法でやっているのですが、結果が改良する前と変わらないのです。どこが違うのか教えていただけませんか。
3
+ horohoroさんに言われて間違いに気づき下記のように編集したのですが
4
+ 結果 <28><40><33><15>
5
+ <15><33><40>
6
+ <40><33>
7
+ <33>
8
+ (empty)
9
+ このようになってしまい、一番上しか逆になっていません
10
+ どうすればよいのでしょうか。
3
11
  /*
4
12
  * list1.c: 片方向連結リストの例プログラム
5
13
  */
@@ -190,6 +198,8 @@
190
198
  NodePtr tmp = NULL;
191
199
  NodePtr work = NULL;
192
200
 
201
+ /*変更箇所*/
202
+ p = l->head;
193
203
  while (p != NULL){
194
204
  /*p->nextを書き換えるため一時退避*/
195
205
  tmp = p->next;
@@ -197,6 +207,7 @@
197
207
  work = p;
198
208
  p = tmp;
199
209
  }
210
+ l->head = work;//変更箇所
200
211
  }
201
212
 
202
213
  /*ノードを逆順に表示*/