質問編集履歴
1
内容修正
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
|
/*ノードを逆順に表示*/
|