这是我的代码如何正确添加二叉搜索树中的节点?
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