アルゴリズムとプログラミング
二分探索木(BST)からノード30を削除する。ノード30は左の子ノードに20、右の子ノードに40を持つ。中順後継者(in-order successor)を使った削除後の状態として正しいものはどれか。
ア.ノード20が30の位置に移動し、40は20の右の子になる
イ.ノード30が削除され、20と40は親ノードに直接接続される
ウ.ノード20が削除され、40が30の位置に来て左の子は空になる
エ.ノード40が30の位置に移動し、40のあった場所は空になる正解
解説
BSTの削除は「王位継承」のようなもの。2人の子を持つノードが消えるとき、右部分木で最も小さい者(中順後継者)が跡を継ぐ。
なぜ エ が正解か
中順後継者は「右部分木の最も左のノード」。ノード30の右部分木の根は40。40に左の子がないため、40自身が中順後継者になる。30を40の値で上書きし、元の40のノードを削除する。結果: 40が30のあった位置に移動し、40のあった場所は空になる。
出典: AI生成問題(学習用)