我想要找到二叉树中某个节点的父节点。假设我通过文本文件将 30、15、17、45、69、80、7 输入到树中。
二叉树应该如下所示:
30
15 45
7 17 69
80
这是我的代码:
Node* BST::searchforparentnode(Node* pRoot, int value)
{
if(pRoot->pleft == NULL && pRoot->pright == NULL)
return NULL;
if(pRoot->pleft->value == value || pRoot->pright->value == value)
return pRoot;
if(pRoot->value > value)
return searchforparentnode(pRoot->pleft,value);
if(pRoot->value < value)
return searchforparentnode(pRoot->pright,value);
在这种情况下,我不考虑用户输入根节点的值。
问题是,当我输入15、17、7时,即根节点左侧分支中的所有值,一切正常。但是当我想要查找右侧分支(69、80)的父节点时,除了45之外,程序就停止运行了。
各位有什么想法关于这个错误是由什么引起的吗?感谢阅读。