回答編集履歴
1
太字加工
test
CHANGED
@@ -16,23 +16,23 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
swap2内でhead = nullで再帰呼び出しを行うので、swap2のhead.nextにはnullが返ります。
|
19
|
+
**swap2**内でhead = nullで再帰呼び出しを行うので、**swap2**のhead.nextにはnullが返ります。
|
20
20
|
|
21
|
-
swap2のheadは[3->4]だったので、このnextがnullに書き換えられ、[3->null]になります。
|
21
|
+
**swap2**のheadは[3->4]だったので、このnextがnullに書き換えられ、[3->null]になります。
|
22
22
|
|
23
|
-
そしてn.nextにheadが入るのですが、swap2ではnは[4->null],headは[3->4]改め[3->null]なので、
|
23
|
+
そしてn.nextにheadが入るのですが、**swap2**ではnは[4->null],headは[3->4]改め[3->null]なので、
|
24
24
|
|
25
25
|
nが[4->3]となります。たぶんここまでは質問者様も正しく理解されていると思います。
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
-
この次は、swap2のnである[4->3]が呼び出し元に帰ります。
|
29
|
+
この次は、**swap2**のnである[4->3]が呼び出し元に帰ります。
|
30
30
|
|
31
|
-
呼び出し元はswap1のhead.nextに代入するところで、headは[1->2]でした。
|
31
|
+
呼び出し元は**swap1**のhead.nextに代入するところで、headは[1->2]でした。
|
32
32
|
|
33
33
|
このnextが[4->3]のノードに書き換わるので、headは[1->4]になります。
|
34
34
|
|
35
|
-
最後にswap1のnのnextにheadが入ります。nが[2->3],headが[1->4]となるので、
|
35
|
+
最後に**swap1**のnのnextにheadが入ります。nが[2->3],headが[1->4]となるので、
|
36
36
|
|
37
37
|
nが[2->1]になります。
|
38
38
|
|