我有以下 BST 的实现:
struct BstNode
{
int value;
BstNode* leftSubnode;
BstNode* rightSubnode;
BstNode(int value)
{
this->value = value;
this->leftSubnode = this->rightSubnode = nullptr;
}
};
struct BstTree
{
BstNode* root;
};
你可以看到,我没有指向前任(当前节点的父节点)的指针。我在实现添加/显示方法方面没有问题,但我不知道如何从我的结构中删除节点。当您只有左右节点的指针时,是否有可能做到这一点?请注意,所有方法都应该针对BstTree
结构实现,而不是针对BstNode
一个(因为我从老师那里收到的任务)。