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

回答編集履歴

2

修正

2018/06/25 08:30

投稿

PineMatsu
PineMatsu

スコア3581

answer CHANGED
@@ -24,6 +24,9 @@
24
24
  while(current != tail) {
25
25
  if (current->birthday % 2 == 0) {
26
26
  prev->next = current->next;
27
+ if (current == head) {
28
+ head = prev->next;
29
+ }
27
30
  delete current;
28
31
  current = prev->next;
29
32
  }else{
@@ -35,4 +38,5 @@
35
38
 
36
39
  最後にプログラム終了するときには残っているNodeをすべて削除するようにしないと、メモリーリークしてしまいます。、
37
40
 
38
- ※一部間違いがあったので修正しました。
41
+ ※一部間違いがあったので修正しました。
42
+ ※さらに修正。(headが消去対象の場合に落ちてしまう)

1

修正

2018/06/25 08:30

投稿

PineMatsu
PineMatsu

スコア3581

answer CHANGED
@@ -26,8 +26,13 @@
26
26
  prev->next = current->next;
27
27
  delete current;
28
28
  current = prev->next;
29
+ }else{
30
+ prev = current;
31
+ current = current->next;
29
32
  }
30
33
  }
31
34
  ```
32
35
 
33
- 最後にプログラム終了するときには残っているNodeをすべて削除するようにしないと、メモリーリークしてしまいます。、
36
+ 最後にプログラム終了するときには残っているNodeをすべて削除するようにしないと、メモリーリークしてしまいます。、
37
+
38
+ ※一部間違いがあったので修正しました。