Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。2分木のデータ追加、サーチ、削除のコードが紹介されています。それを今Ruby版に置き換えたつもりなのですが、53を追加、25を追加、85を追加、83を追加、52を追加したあと、53を削除すると「52が二つ表示される」不具合が生じます。printf("実行する操作のタイプを入力してください。ないといけないっぽい。printf("実行する操作のタイプを入力してください。ないといけない」理由がわかったので簡単に記しておきます。いま削除したいノードは子孫をもつノードである。よって、左側の子孫で最大のものを探し、それをnodeに代入することになる。上書きしていたことがきっかけでした。「同値二重代入は大抵バグ」という見方からです(単なる経験則)。回答段階では「削除したいノードが左右両方をもっていた場合木構造を崩さないように入れ替えなければならない」というところであるというところまで認識しましたが、実装が正しいのか検証はしていませんでした。おっしゃるように「左側から最大値を探す」という流れですね。補足情報として、ここは「右側から最小値を探す」でも同様のことができたと思います。まわす他に再帰でも書けます。すんだったかというところでギブアップしましたw。回答を見抜き、適切なフィードバックをありがとうございました。勉強させてもらってます。回答のコードでは、質問文にある追加・挿入操作を行うとつぎのように正常動作します。ページも参照してください)実行する操作のタイプを入力してください。9:終了>1追加する数字を入力してください:5353実行する操作のタイプを入力してください。2553実行する操作のタイプを入力してください。85実行する操作のタイプを入力してください。85実行する操作のタイプを入力してください。85実行する操作のタイプを入力してください。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。