這是一種方法來查找特定的節點在二叉搜索樹...... 我不知道有什麼問題嗎,但由於某種原因這個代碼不正常..任何幫助?什麼是錯誤的代碼(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