我创建了一个二叉搜索树,我的二叉树的每个节点都在一个包含键的结构中设置,并且指向左右节点。
在我的二进制搜索树的复制构造函数中,我调用一个帮助器方法来重复遍历这样的树:
Node* BinaryTree::copyHelper(const Node* other)
{
if(other == NULL)
{
return NULL; // If there's no Node to copy, return NULL.
}
Node* newNode = new Node;
if(newNode)
{
newNode->name = other->name;
newNode->left = copyHelper(other->left);
newNode->right = copyHelper(other->right);
}
return newNode;
}
标题中提到的错误在上面最后一个if语句的左右指针上。
如果有人能告诉我如何删除它,那将不胜感激。
答案 0 :(得分:0)
如果您使用智能指针而不是原始指针,则可以绕过警告:
typedef std::unique_ptr<Node> NodePtr;
NodePtr newNode(new Node);
而不是
Node* newNode = newNode;