Java递归多重

Java递归多重,java,recursion,void,Java,Recursion,Void,我试图理解BST是如何计算高度的。所以我写了一个程序来查看这些步骤,但我得到了这个错误。请帮助更正代码 import java.io.*; import java.util.*; import java.lang.Math; class recurme { public void rec(int k) { int i = 0; int count = 0; count++; System.out.println(coun

我试图理解BST是如何计算高度的。所以我写了一个程序来查看这些步骤,但我得到了这个错误。请帮助更正代码

import java.io.*;
import java.util.*;
import java.lang.Math;

class recurme {

    public void rec(int k) {
        int i = 0;
        int count = 0;
        count++;
        System.out.println(count + "  ..." + k);
        i = Math.max(rec(k - 1), rec(k - 1));
        System.out.println(i);
    }

    public static void main(String args[]) {
        int n = 10;
        recurme obj = new recurme();
        obj.rec(10);

    }
}
错误:

此处不允许使用void类型

罪魁祸首是上述陈述

查看文档以了解Math.max期望输入的内容:

看看你的rec方法作为输出给出了什么

public void rec(int k)

这将有助于您理解缺少的内容。

rec
返回
void
:您不能在void上调用
Math.max
。提示:您要传递给
Math.max
的表达式类型是什么?即使
rec
方法确实返回了值,这仍然没有意义:为什么要用同一个参数调用
Math.max
?你明白你想编程什么吗?对不起!我不明白。请告诉我答案。感谢uppublic int height(BSTNode node){if(node==null){return-1;}else{return 1+Math.max(height(node.left),height(node.right));您的代码正在用void调用Math.max。类似这样的代码:Math.max(void,void);
public void rec(int k)