【发布时间】:2021-06-10 23:58:27
【问题描述】:
void remove( const int & info, AvlNode * & node ) {
//current holdes leftmost/rightmost leaf
AvlNode*current = node;
AvlNode*temp = node;
if(current->element == info){
//deleted node is in root
AvlNode*rootreplace = current;
rootreplace = current->right;
while(rootreplace->left != NULL){
rootreplace = rootreplace->left;
}
int c2=rootreplace->element;
cout << c2;
remove(c2,node);
removeleftmost(c2,node);
cout << c2;
//node->element = c2;
root 和 node 可以互换
node 设置为根节点,这是我要更改的值(元素)。
我可以输出root->element and rootrepalace->element 工作正常
,但是当我设置时
node->element = rootreplace->element 我得到一个段故障 11。让我相信这与我如何访问这些节点有关,但我在网上找不到太多信息。
【问题讨论】:
-
尝试“计算”指针(而不是指向的对象)
node、current和rootreplace,只是看看何时以及为什么有些变为 null。
标签: c++ function linked-list segmentation-fault nodes