我想要實現的功能在搜索二叉樹的一個節點,並返回一個節點指針指向這樣找到的節點:C++函數總是返回相同的指針
template <class T>
Node<T>* BST<T>::findNode(T a,Node<T>* node)
{
cout<<node->value<<endl;
if(a == node->value)
{
return node;
}
if(a < node->value)
{
if(node->left==NULL)
{
return NULL;
}
findNode(a, node->left);
}
if(a > node->value)
{
if(node->right==NULL)
{
return NULL;
}
findNode(a, node->right);
}
}
在主程序中,我有一個指針(稱爲bst)指向二進制搜索樹的實例,該實例填充了一些節點。我宣佈一個節點的指針,並呼籲像這樣的功能:
Node <int> * n = bst-> findNode(3,bst->head);
問題:功能效果很好,如果它不能找到匹配的值,但是,如果它確實找到匹配的值(即走在if(a==node->value) block
,它總是返回相同的值(在我的電腦中,節點n總是爲0x6的值),它是如何發生的,以及如何解決呢?
TIA!
感謝您解決問題,沒有注意到返回的東西.. –