这是一种方法来查找特定的节点在二叉搜索树...... 我不知道有什么问题吗,但由于某种原因这个代码不正常..任何帮助?什么是错误的代码(BST)
public KAUstudent findNodeName(String fName, String lName){
return findNodeName(root, fName, lName);
}
public KAUstudent findNodeName(KAUstudent p , String fName, String lName){
if (p == null)
return null;
else {
// if the data we are searching for is found at p (at the current root)
if (fName.equalsIgnoreCase(p.getFirstName()) && lName.equalsIgnoreCase(p.getLastName()))
return p;
else if ((fName.compareToIgnoreCase(p.getFirstName())< 0) || (lName.compareToIgnoreCase(p.getLastName()) <0))
return findNodeName(p.getLeft(), fName, lName);
else
return findNodeName(p.getRight(), fName, lName);
}
}
请解释这意味着什么不正常。它在做什么与你期望的? – ChiefTwoPencils
如果名称存在于树中,它应该返回节点。否则它应该返回null。但有时它会返回null,即使名称exsit – Chie