该方法发现BST中的最大节点返回其值并删除它。我在prev->rightLink = cur->leftLink;
处遇到访问冲突。我对C++相对不熟悉,无法找到原因。二进制搜索树 - 访问冲突
int CTree::popLargest(TreeNode* tr)
{
int largest;
TreeNode* prev = NULL;
TreeNode* cur = tr;
while (cur->rightLink != NULL)
{
prev = cur;
cur = cur->rightLink;
largest = cur->info;
//DeleteAttemptTwo(tr, largest);//DeleteItem(largest);
}
if (cur->leftLink != NULL)
{
prev->rightLink = cur->leftLink;
}
else
{
prev->rightLink = NULL;
}
return largest;
}
如果'prev'是'NULL'会怎么样? – oldrinb