这是一个关于AVL树的问题,我对current复制后,并没有改动其内容,怎么会free报错呢?求教!
以下是删除AVL节点的函数,在图中画红线的地方报了错。
这是一个关于AVL树的问题,我对current复制后,并没有改动其内容,怎么会free报错呢?求教!
以下是删除AVL节点的函数,在图中画红线的地方报了错。
free前需要判断是否为NULL,代码修改如下:
//原始代码
if(parent->left == current){
parent->left = NULL;
free(current);//这里需要判断current是不是NULL
}
//上述代码修改为:
if(parent->left == current){
if(current) free(current);
parent->left = NULL;
}