gpt4 book ai didi

java - 递归方法为什么会停止?

转载 作者:行者123 更新时间:2023-12-01 17:29:11 24 4
gpt4 key购买 nike

我正在尝试学习一些关于递归方法的知识,并且正在为我的二叉树编写一种方法,该方法可以计算树中所有整数的总和,我的代码工作正常,但我仍然对应用程序如何知道什么时候感到有点困惑停止。我的代码如下所示:

    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);
}

}

(上面的代码来 self 的nodeTree类)

下一个代码来 self 的主类:

public class TreeClient {

/**
* @param args
*/
public static void main(String[] args) {
IntTree tree = new IntTree(12);
System.out.println(tree.sum());
}

}

所以问题是(也许对许多人来说非常简单)但是我的应用程序如何知道何时停止?我尝试过使用简单的系统打印来找出答案,但据我目前的理解,该方法会在无限循环中调用它自己?

希望有人有时间回复!

最佳答案

在任何递归程序中,当达到基本条件时,迭代就会停止。这里您的基本条件是: -

if (root == null) {
return 0;
}

因此,当 else block 中的以下 return 语句中的 root.leftroot.right 都变为 null 时,您有达到您的基本条件,因此您的循环停止..

return root.data + sum(root.left) + sum(root.right);

关于java - 递归方法为什么会停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com