C++ 红黑树插入-递归问题-C++;

C++ 红黑树插入-递归问题-C++;,c++,data-structures,recursion,insert,red-black-tree,C++,Data Structures,Recursion,Insert,Red Black Tree,我有一个递归插入方法,它在红黑树中实现。从递归调用返回后,我尝试查看本地根的子级是否为红色。但实际发生的是,我在检查树的根,而不是子树(最近插入的地方) 下面是我正在查看的insertNode方法内部的代码片段: this->insertNode(root->right, value); if(root->right->is_red) { cout << "color again & " << root->data <&

我有一个递归插入方法,它在红黑树中实现。从递归调用返回后,我尝试查看本地根的子级是否为红色。但实际发生的是,我在检查树的根,而不是子树(最近插入的地方)

下面是我正在查看的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);
}
this->insertNode(root->right,value);
如果(根->右->为红色){
cout is_red=假;
root->is_red=true;
此->旋转英尺(根);
}

如何对发生最后一次插入的子树的根进行操作?我是否需要确保在从递归调用返回之前完成此操作?

修改insertNode,使其返回实际插入的节点。插入后,您将能够轻松访问其父节点(假设该节点知道其父节点)。

当然!我现在问这个问题感到很愚蠢!非常感谢你!