节点删除的时候可以node直接复制右子数最小节点的内容,然后删除右子数最小节点吗?然后count先加1后减1,是否可以不操作呢?
来源:5-8 二分搜索树节点的删除(Hubbard Deletion)

易水人去
2017-11-20
// 右子树最小值(左子数最大值) Node *successor = new Node(minimum(node->right)); // ++count; successor->left = node->left; successor->right = removeMin(node->right); delete node; // --count; return successor; // // 直接复制,不new and delete // Node *min = minimum(node->right); // node->key = min->key; // node->value = min->value; // node->right = removeMin(node->right); // return node;
写回答
1回答
-
liuyubobobo
2017-11-21
完全可以不操作,在这里,我只是显示地表明:new了一个新节点,count++;删除一个节点,count--:)
10
相似问题