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

回答編集履歴

1

追記

2020/06/03 05:57

投稿

yudedako67
yudedako67

スコア2052

answer CHANGED
@@ -26,4 +26,9 @@
26
26
  ```
27
27
  もう一つここの動作も怪しいです。コメントで「実行後 head 自体は変化なく」と言っているように、この関数は実際には分割しません。いくらかのカード分進めたポインターを返すだけで、元も山は元の状態で残ったままです
28
28
  (もう一つ小さなミスとしては引数のnが残ったカードの数ではなく、実際は進めるカードの数になっているということ)。ところがreverse内での実際の使用法を見ると、分割される前提で元の山に積み上げていっているので、どんどんカードの枚数が増えていきます(pileupの実装次第ではループした単方向リストになる)。
29
- pileupとsplit以外は与えられてるということなので、実際にsplitするような実装に変えるべきなんでしょう。
29
+ pileupとsplit以外は与えられてるということなので、実際にsplitするような実装に変えるべきなんでしょう。
30
+
31
+ ---
32
+ split関数の理想的な動作としては[1-> 2-> 3-> 4-> 5-> Null]というようなリストが与えられたとき、[1-> Null]と[2-> 3-> 4-> 5-> Null]の二つのリストができる関数です。つまりどこかでnextにNullを代入するはずです。
33
+
34
+ コメントのsplit関数については最初のsplit関数と同じ動作です。もしかしたらポインターの働きを勘違いしてるんじゃないでしょうか。