0

バイナリ検索ツリーを作成しました。バイナリツリーの各ノードは、キーと、左右のノードへのポインタを含む構造体に設定されています。

このバイナリ検索ツリーのコピーコンストラクターでは、ヘルパーメソッドを呼び出して、次のようにツリーを繰り返し処理します。

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ステートメントの左右のポインターにあります。

誰かがそれを取り除く方法を教えてくれたら、それはありがたいです。

4

1 に答える 1

0

生のポインターの代わりにスマートポインターを使用する場合は、おそらく警告をバイパスできます。

typedef std::unique_ptr<Node> NodePtr; 
NodePtr newNode(new Node);

それ以外の

Node* newNode = newNode;
于 2012-05-02T14:07:32.037 に答える