我试图在java中编写一个递归函数,它需要一个按字母顺序排列的充满单词的arraylist,并尽可能地填充树。据我所知,我遇到的问题是java没有通过引用传递,所以在我的递归函数中,我从来没有真正更新左右分支指向的位置,这意味着树的顶部永远不会指向任何东西。有没有更好的(工作)方法来做到这一点?我是否在尝试首先填充树时完全错过了标记?
public void saveNode(BinaryTreeNode parent, int left, int right)
{
int middle = (int) Math.ceil(((double)(right-left))/2.0);
int curIndex;
curIndex = middle+left;
parent = new BinaryTreeNode(words.get(curIndex));
if(middle != 1)
{
saveNode(parent.left, left, curIndex);
saveNode(parent.right, curIndex, right);
}
}
PS:我对java比较陌生