void ClueBinaryTree::_PreThreading(Node*& Temp,Node *&Pre) //前驱线索化
{
if (Temp != NULL) {
if (Temp->leftChild != NULL)
Temp->leftTag = 0;
else {
Temp->leftChild = Pre;
Temp->leftTag = 1;
}
if (Temp->rightChild != NULL)
Temp->rightTag = 0;
else
Temp->rightTag = 1;
if (Pre != NULL && Pre->rightTag == 1) {
Pre->rightChild = Temp;
}
Pre = Temp;
if (Temp->leftTag == 0)
_PreThreading(Temp->leftChild, Pre);
if (Temp->rightTag == 0)
_PreThreading(Temp->rightChild, Pre);
}
}
这又一个很容易忽略的易错点:就是参数部分的Pre是否应该设置成引用模式。刚开始没有设置成引用,所用导致频繁出错。那为什么加上引用就可以正常执行了呢?
错因分析:如图所示。
本文介绍了一种二叉树的前驱线索化方法,并详细解析了一个容易被忽视的错误点——参数传递中是否使用引用模式。通过具体示例说明了使用引用参数的重要性。

2万+

被折叠的 条评论
为什么被折叠?



