我正在尝试在BST中创建删除功能。 当我尝试删除指针时,我收到此错误。 Click to see the image
void delete(Node** root, int data) {
if((*root) == NULL)
return;
else if(data < (*root)->data)
delete(&(*root)->left, data);
else if(data > (*root)->data)
delete(&(*root)->right, data);
else {
printf("%d\n", (*root)->data);
// case 1
if((*root)->left == NULL && (*root)->right == NULL) {
free((*root));
printf("wssal");
}
}
}
[1]: http://i.stack.imgur.com/42K5L.png
答案 0 :(得分:1)
您的delete
函数不会更新树结构,以反映已删除的节点不再位于树中的事实。所以你要离开树,包括指向不再存在的节点的指针。