Red-Black Tree に実装されている再帰的な挿入メソッドがあります。再帰呼び出しから戻った後、ローカル ルートの子が赤かどうかを確認しようとしています。しかし、実際に起こっているのは、サブツリー (最新の挿入が行われた場所) ではなく、ツリーのルートをチェックしていることです。
私が見ているコードのスニペットは、insertNode メソッド内にあります。
this->insertNode(root->right, value);
if(root->right->is_red) {
cout << "color again & " << root->data << endl;
root->right->is_red = false;
root->is_red = true;
this->rotateLeft(root);
}
最後の挿入が行われたサブツリーのルートを操作するにはどうすればよいですか? 再帰呼び出しから戻る前に、これが完了していることを確認する必要がありますか?