【问题标题】:Counting nodes in a binary tree according to a given criteria (recursively)根据给定标准(递归)计算二叉树中的节点
【发布时间】:2020-09-04 23:53:58
【问题描述】:

我想使用java中的二叉搜索树递归计算成绩低于60的失败学生的数量。我不知道我的方法是否正确。 在

之后找到要在公共包装器方法中使用的辅助方法
    private int NumberfailStudents(int numoffailed, BNode current) {
        // BaseCase
        if (current == null) {

            return 0 + numofpassed;

        } else {

            if (current.data.getGrades() < 60) {
                return ++numoffailed;
            }

            if (current.left != null) {
                return NumberfailStudents(numoffailed, current.left);
            }
            if (current.right != null) {
                return NumberfailStudents(numoffailed, current.right);
            }

        }

        return numoffailed;

    }

【问题讨论】:

  • 我不知道我的方法是否正确 - 为什么不呢?
  • 我还在写这门课,这是一门大课,除非我全部完成,否则我无法尝试。
  • 非常推荐你写一段代码然后测试,不要太写所有代码然后测试。 除非我全部完成,否则我无法尝试。 - 警钟

标签: java recursion binary-search-tree


【解决方案1】:

如果检查电流为空的 if 条件应该返回numoffailed 而不是numofpassed

我已更新 NumberFailStudents 以匹配命名约定

    private int NumberFailStudents(int numOfFailed, BNode current) {
        if (current == null)
            return numOfFailed;

        if (current.data.getGrades() < 60)
            ++numOfFailed;

        if (current.left != null)
            numOfFailed = NumberFailStudents(numOfFailed, current.left);

        if (current.right != null)
            numOfFailed = NumberFailStudents(numOfFailed, current.right);

        return numOfFailed;
    }

【讨论】:

  • 不客气 :),你能批准答案吗:D
  • 我做到了,我还需要再等 6 分钟才能更新。 :')
猜你喜欢
  • 2020-02-21
  • 2015-08-31
  • 2014-05-10
  • 2014-08-12
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
相关资源
最近更新 更多