Java 非静态方法中的递归
我在论坛上找不到这个问题的答案,很抱歉,如果这个问题得到了回答,我错过了 在这里,我对在非静态方法上使用递归一无所知 例如:Java 非静态方法中的递归,java,recursion,non-static,Java,Recursion,Non Static,我在论坛上找不到这个问题的答案,很抱歉,如果这个问题得到了回答,我错过了 在这里,我对在非静态方法上使用递归一无所知 例如: public static void farLeft(BTNode root){ if(root !=null) return farLeft(root.left); } 这只是我在这里输入的一些随机代码。如果我想用一个非静态方法做同样的事情,我该如何在一个非静态方法上使用递归呢?我的书没有很好地解释它。您在返回void的方法中返回了
public static void farLeft(BTNode root){
if(root !=null)
return farLeft(root.left);
}
这只是我在这里输入的一些随机代码。如果我想用一个非静态方法做同样的事情,我该如何在一个非静态方法上使用递归呢?我的书没有很好地解释它。您在返回void的方法中返回了一个非void对象。除此之外,您可以使用如下非静态方法:
public BTNode farLeft(BTNode root){
if(root !=null)
return farLeft(root.left);
//Return root because root has no left child
return root;
}
public BTNode farLeft(BTNode root){
if(root !=null)
return root.farLeft(root.left);
}
对于非静态方法,需要使用类实例调用它。 该方法不应是私有的 如果该方法是在类
BTNode
中实现的,它将如下所示:
public BTNode farLeft(BTNode root){
if(root !=null)
return farLeft(root.left);
//Return root because root has no left child
return root;
}
public BTNode farLeft(BTNode root){
if(root !=null)
return root.farLeft(root.left);
}
希望这有帮助。祝你好运,编程愉快 干杯
在递归方面,方法是静态的还是非静态的不太可能有区别。你能给出一个你认为可行的方法的例子吗?任何方法都可以递归,只要它有终止条件。如果它是非静态的,只需将其作为类实例的方法调用即可。是否删除
静态的?你在哪个班?@Boristeider:是的。你是对的。