我編寫了這段代碼來查找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值輸入功能,然後每空狀態返回時,空條件只需要先檢查 –
伊斯頓Bornemeier的修復比這個更簡潔,並解決了同樣的問題 – littlespice3
我也這麼認爲,但人們可以認爲只是編輯他們對我的不完整答案,並得到它標記正確,而我仍然是 - –