Java 在二叉树中保持计数

Java 在二叉树中保持计数,java,recursion,binary-tree,Java,Recursion,Binary Tree,我对Java有点陌生,并且研究递归和二叉树。我有一个任务,加载一个非常大的文件,并从每个单词创建一个二叉树。在每个节点中,我都将单词存储为字符串,并将单词在文件中出现的次数设置为频率int 我写了这个程序,但由于某种原因,我得到的数字与我的教授说的我们应该得到的不同 private int findUniqueWords(Node subTree, int uniqueCount) { // Base Case: At the end of the branch if(subT

我对Java有点陌生,并且研究递归和二叉树。我有一个任务,加载一个非常大的文件,并从每个单词创建一个二叉树。在每个节点中,我都将单词存储为字符串,并将单词在文件中出现的次数设置为频率int

我写了这个程序,但由于某种原因,我得到的数字与我的教授说的我们应该得到的不同

private int findUniqueWords(Node subTree, int uniqueCount) {

    // Base Case: At the end of the branch
    if(subTree == null){
        return uniqueCount;

    //The word occurs exactly one time
    } else if(subTree.getFreqCount() == 1){

        uniqueCount++;
    }


    //Find the count in the left branches
    uniqueCount = findUniqueWords(subTree.getLchild(), uniqueCount);

    //Find the count in right branches and return
    return findUniqueWords(subTree.getRchild(), uniqueCount);
}

据我所知,此文件已正确加载到树中,因为我在作业中的所有其他答案都是正确的。我做错了什么?

这棵树是什么?话?getFreqCount做什么?你的代码看起来不错。这里使用的是递归,逻辑是正确的。您可以在eclipse中调试代码,并逐步查看出错的地方。至少问题不在您粘贴到这里的这段代码中。树是从文件加载的单词。getFreqCount在Node类中,返回节点中单词出现的频率。好的,谢谢@BufBills。我真的很害怕。现在我没有地方可以使用它,调试模式似乎没有帮助,因为这是一个包含一本超过300页长的书的文件。是否可能一个单词在左子树中出现一次,在右子树中出现一次?如果是这样,那么您将增加uniqueCount两次而不是一次。我不完全确定你的二叉树是如何处理这些事情的。