質問編集履歴

1

回答していただいたものへの返信のソースコードです

2020/08/23 02:43

投稿

WindowppleMacin
WindowppleMacin

スコア3

test CHANGED
File without changes
test CHANGED
@@ -142,6 +142,76 @@
142
142
 
143
143
 
144
144
 
145
+ ```python
146
+
147
+ if curent: # curent else 条件分岐内にroot削除処理を挿入
148
+
149
+ if self.head.num == search_num:
150
+
151
+ if self.head.right == None and self.head.left == None:
152
+
153
+ self.head = None
154
+
155
+ return True
156
+
157
+ elif self.head.right == None and self.head.left:
158
+
159
+ self.head = self.head.left
160
+
161
+ return True
162
+
163
+ elif self.head.right and self.head.left == None:
164
+
165
+ self.head = self.head.right
166
+
167
+ return True
168
+
169
+ else:
170
+
171
+ head_tmp = self.head
172
+
173
+ curent = self.head.right
174
+
175
+ prev = None
176
+
177
+ while curent.left:
178
+
179
+ prev = curent
180
+
181
+ curent = curent.left
182
+
183
+ self.head = curent
184
+
185
+ self.head.left = head_tmp.left
186
+
187
+ if curent.num < prev.num:
188
+
189
+ prev.left = self.head.right
190
+
191
+ else:
192
+
193
+ prev.right = self.head.right
194
+
195
+ self.head.right = prev
196
+
197
+ return True
198
+
199
+ else:
200
+
201
+ while True:
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+ 以下続き
210
+
211
+ ```
212
+
213
+
214
+
145
215
  ### 試したこと
146
216
 
147
217
  関数deleteminが間違っている気がして、いろいろ処理を追加したり、rightとleftの書き間違いかと、入れ替えたりしてみたのですが、上記のコードが一番まともに動作しています。