我想学习有关递归方法的技巧,并正在为我的二叉树编写一个方法来计算树中所有整数的总和我的代码工作正常,但除此之外,我仍然对应用程序如何知道何时停止。我的代码看起来像这样:递归方法为什么会停止?
public int sum(){
return sum(overallRoot);
}
private int sum(IntTreeNode root) {
if (root == null) {
return 0;
}else {
return root.data + sum(root.left) + sum(root.right);
}
}
(上面的代码是从我nodeTree类)
下面的代码是从我的主类:
public class TreeClient {
/**
* @param args
*/
public static void main(String[] args) {
IntTree tree = new IntTree(12);
System.out.println(tree.sum());
}
}
所以问题是(可能很多很简单),但我的应用程序如何知道何时停止?我尝试用简单的系统输出打印出来,但是就我现在的理解而言,这个方法会在无限循环中称它为自我?
希望有人有时间回应!
提示:在什么情况下做你的'总和()'函数*不*自称? –