回答編集履歴

2

修正

2018/06/25 08:30

投稿

PineMatsu
PineMatsu

スコア3579

test CHANGED
@@ -50,6 +50,12 @@
50
50
 
51
51
  prev->next = current->next;
52
52
 
53
+ if (current == head) {
54
+
55
+ head = prev->next;
56
+
57
+ }
58
+
53
59
  delete current;
54
60
 
55
61
  current = prev->next;
@@ -73,3 +79,5 @@
73
79
 
74
80
 
75
81
  ※一部間違いがあったので修正しました。
82
+
83
+ ※さらに修正。(headが消去対象の場合に落ちてしまう)

1

修正

2018/06/25 08:30

投稿

PineMatsu
PineMatsu

スコア3579

test CHANGED
@@ -54,6 +54,12 @@
54
54
 
55
55
  current = prev->next;
56
56
 
57
+ }else{
58
+
59
+ prev = current;
60
+
61
+ current = current->next;
62
+
57
63
  }
58
64
 
59
65
  }
@@ -63,3 +69,7 @@
63
69
 
64
70
 
65
71
  最後にプログラム終了するときには残っているNodeをすべて削除するようにしないと、メモリーリークしてしまいます。、
72
+
73
+
74
+
75
+ ※一部間違いがあったので修正しました。