這是我的代碼如何正確添加二叉搜索樹中的節點?
public boolean insertWord(String key, String meaning) {
if((root == null)){
root = new TreeNode();
root.key = key;
root.meaning = meaning;
}
else{
TreeNode subroot = root;
if(subroot.key.compareTo(key) == 0){
return false;
}
else if(key.compareTo(subroot.key) < 0){
if(subroot.left != null){
subroot = root.left;
return insertWord(key, meaning);
}
else{
subroot.left = new TreeNode();
subroot.left.key = key;
subroot.left.meaning = meaning;
}
}
else{
if(subroot.right != null){
subroot = root.right;
return insertWord(key, meaning);
}
else{
subroot.right = new TreeNode();
subroot.right.key = key;
subroot.right.meaning = meaning;
}
}
}
return true;
}
這樣做給我計算器錯誤。有人可以幫助我瞭解爲什麼我一直在收到這個錯誤。我知道它是因爲無限循環,但我不知道它爲什麼會發生。有人能告訴我它在哪裏發生,以及如何解決它?謝謝
你的函數永不熄滅的根節點。注意,賦值給'subroot'只會改變一個永遠不會傳遞給遞歸調用的局部變量。 – Diego