BSTでノードを見つけるためにこのコードを書いています。コードは正常に動作しますが、ノードが見つからないとコードがクラッシュします。バイナリ検索ツリーで要素を検索する
私のコードでは、どのようなエラーが考えられますか?
TreeNode* fetch(TreeNode*root,int d)
{
if(root->data==d)
{
return root;
}
else if(root==NULL)
{
return NULL;
}
else if(d<root->data)
{
return fetch(root->left,d);
}
else if(d>root->data)
{
return fetch(root->right,d);
}
}
TreeNode* temp;
temp=fetch(root,d);
if(temp->data)
{
cout<<temp->data<<" FOUND";
}
else if(temp==NULL)
{
cout<<"Not Found";
}
に書かれているコメントを読んでください、 NULL状態は最初にチェックする必要があります –
イーストンボルネミエの修正はこれよりも簡潔であり、同じ問題に対処します – littlespice3
私もそう思っていましたが、人々は不完全な回答を編集し、否定的 - .- –