嘿伙计我应该编写一个将给定节点插入BT根目录的函数。 插入节点后,树应该仍然是BST的标准。 我的函数返回一个错误,表示" void值不被忽略,因为它应该在递归定义中。请给我一个错误的提示。
void InsertNode(Node* root, Node* node){
if(root == NULL) {
root = node;
}
else if(node->value <= root->value ){
root->left = InsertNode(root->left,node);
}
else{
root->right = InsertNode(root->right,node);
}
return ;
}
那么我该如何分配这个结构的给定节点:
struct Node{
int value;
Node* left;
Node* right;
};
到空树根?
void InsertNode(Node* root, Node* node){
if (node->value==root->value) return;
if(node->value < root->value){
root->left = node;
node->left++;
}
if (node->value>root->value){
root->right = node;
node->right++;
}
}
所以现在我有了这个功能的想法,增加两个指针以通过树是正确的吗?
答案 0 :(得分:1)
您正尝试将void
分配给变量。这对编译器没有意义。
你的功能无论如何都不会奏效。将node
分配给root
不会做任何超出InsertNode
功能主体的内容。