这段代码存在一个类型转换错误。在函数签名中,LocateAddress(DataType i)
指定了返回类型为 DataType
,即模板参数的类型。然而,在函数体内部,实际返回的是 Node<int>*
类型的指针。
如果你希望返回第i个元素节点的指针,则需要将函数签名修改为:
template<class DataType>
Node<DataType>* LinkList<DataType>::LocateAddress(DataType i) //求第i个元素节点
{
if (i > length) return nullptr;
Node<DataType>* p = head->next;
for (int j = 0; j < i; j++)
{
p = p->next;
}
return p;
}
这样可以保证返回值类型与实际返回值匹配。
内容由零声教学AI助手提供,问题来源于学员提问