Java递归多重
我试图理解BST是如何计算高度的。所以我写了一个程序来查看这些步骤,但我得到了这个错误。请帮助更正代码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
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)