private void createSortedBT2(int index, BinaryTree<Country> cNode){
if(index >= 0){
if(db.getCountry(index).isLess(cNode.getContent())){
if(cNode.getLeftTree().isEmpty()){
cNode.getLeftTree().setContent(db.getCountry(index));
}else{
createSortedBT2(index, cNode.getLeftTree());
}
}else if(db.getCountry(index).isGreater(cNode.getContent())){
if(cNode.getRightTree().isEmpty()){
cNode.getRightTree().setContent(db.getCountry(index));
}else{
createSortedBT2(index, cNode.getRightTree());
}
}
createSortedBT2(index-1, bt);
}
}
您好,我想知道为什么此方法陷入循环。我正在使用一个IDE,在这里我可以检查BinaryTree及其所有内容的正确位置,但是以某种方式卡住了。它也没有显示任何stackoverflow或nullpointerexceptions。 index初始化为18,cNode的根为空(db是一个数组,并且所有方法都可以工作)。 (我知道树是不平衡的,但这还是我们应该要做的任务。)