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

回答編集履歴

1

太字加工

2019/11/04 04:19

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -7,15 +7,15 @@
7
7
  次に`head.next = swapPairs(head.next.next)`の再帰呼び出し(**swap2**と名付けます)で
8
8
  head = [3->4]で呼び出すので、nは[4->null]のノードになります。
9
9
 
10
- swap2内でhead = nullで再帰呼び出しを行うので、swap2のhead.nextにはnullが返ります。
10
+ **swap2**内でhead = nullで再帰呼び出しを行うので、**swap2**のhead.nextにはnullが返ります。
11
- swap2のheadは[3->4]だったので、このnextがnullに書き換えられ、[3->null]になります。
11
+ **swap2**のheadは[3->4]だったので、このnextがnullに書き換えられ、[3->null]になります。
12
- そしてn.nextにheadが入るのですが、swap2ではnは[4->null],headは[3->4]改め[3->null]なので、
12
+ そしてn.nextにheadが入るのですが、**swap2**ではnは[4->null],headは[3->4]改め[3->null]なので、
13
13
  nが[4->3]となります。たぶんここまでは質問者様も正しく理解されていると思います。
14
14
 
15
- この次は、swap2のnである[4->3]が呼び出し元に帰ります。
15
+ この次は、**swap2**のnである[4->3]が呼び出し元に帰ります。
16
- 呼び出し元はswap1のhead.nextに代入するところで、headは[1->2]でした。
16
+ 呼び出し元は**swap1**のhead.nextに代入するところで、headは[1->2]でした。
17
17
  このnextが[4->3]のノードに書き換わるので、headは[1->4]になります。
18
- 最後にswap1のnのnextにheadが入ります。nが[2->3],headが[1->4]となるので、
18
+ 最後に**swap1**のnのnextにheadが入ります。nが[2->3],headが[1->4]となるので、
19
19
  nが[2->1]になります。
20
20
 
21
21
  全部繋げると、