我试图实现二进制搜索树的代码。问题是下面的代码不起作用,但如果我将双指针传递给插入函数,如 insert(struct bst** node, data),它就会起作用。我认为它也应该与传递单指针一起工作。谁能解释这里的错误是什么?
void insert(struct bst* node, int data )
{
if (node == NULL)
{
printf("here with %d\n",data);
node = (struct bst*)malloc(sizeof(struct bst));
node->data = data;
node->left = NULL;
node->right = NULL;
}
if(data < node->data)
{
insert(node->left,data);
}
else if(data > node->data)
{
insert(node->right,data);
}
}