我正在構建二叉搜索樹。現在我遇到了向樹添加節點的問題。將節點添加到二叉搜索樹C++
void BinaryTree::add(int value, Node* node) {
if(!node)
node = new Node(value);
else if(node->key < value)
this->add(value, node->rightNode);
else if(node->key > value)
this->add(value, node->leftNode);
}
此代碼似乎並不當我打電話給工作:
BinaryTree test;
test.add(4, test.root);
test.add(1, test.root);
test.add(5, test.root);
test.add(2, test.root);
test.add(3, test.root);
test.add(7, test.root);
test.add(6, test.root);
第一添加通話後,樹「測試」的根源仍然是空的。 我應該如何更改代碼,以便在我調用add時節點會更新,並且節點會轉到樹的正確位置? 非常感謝!
您可以通過引用傳遞'Node *'。 –
是的,謝謝! @ShafikYaghmour – Ra1nWarden