【发布时间】:2015-06-06 01:57:57
【问题描述】:
我正在尝试使用递归函数将节点插入到二叉搜索树中。但是,当我尝试调用我的函数时,我收到错误消息
no known conversion for argument 1 from ‘Node*’ to ‘Node*&’
这是递归函数和调用它的函数的代码:
bool BST::add(int data)
{
if (root == NULL)
{
Node* gnu = new Node(data);
root = gnu;
return true;
}
return recursiveAdd(root, data);
}
bool BST::recursiveAdd(Node*& start, int data)
{
if (start == NULL)
{
Node* gnu = new Node(data);
start = gnu;
return true;
}
if (data < start->getData())
{
return recursiveAdd(start->getLeft(), data);
}
if (data > start->getData())
{
return recursiveAdd(start->getRight(), data);
}
if (data == start->getData())
{
return false;
}
return false;
}
以下是我的 Node 类中用于 getLeft()、getRight() 和 getData() 的函数:
int Node::getData()
{
return data;
}
Node* Node::getLeft()
{
return leftChild;
}
Node* Node::getRight()
{
return rightChild;
}
如果有人能告诉我我需要修复什么才能使其正常工作,我将不胜感激。
谢谢!
【问题讨论】:
标签: c++ pointers binary-search-tree pass-by-reference