gpt4 book ai didi

Java 递归 : When does statements after a recursive method call executes

转载 作者:行者123 更新时间:2023-12-04 05:18:42 26 4
gpt4 key购买 nike

方法调用本身之后的语句何时执行?

private void inorderHelper(TreeNode node)
{
if ( node==null )
return;
inorderHelper(node.leftNode);
System.out.printf("%d", node.data);
inorderHelper(node.rigthNode);
}

我所能看到的是,代码行 inorderHelper(node.leftNode) 将继续迭代,直到 node == null 并且该方法在打印 node.data 之前立即终止。我认为我没有得到很好的递归,但是我能找到的所有例子在递归调用之后都没有语句。我只想知道什么时候像 System.out.printf("%d",node.data) 这样的语句在方法返回之前执行?

最佳答案

您似乎在考虑方法的单一激活。在递归调用情况下,可以多次调用相同的方法。每个调用都有自己的堆栈帧。 return 仅从调用它的激活返回。当它返回时,控制被转移回调用它的激活,就像它被不同的方法调用一样。

递归调用之后的代码在每次激活中运行,从它调用的激活返回后立即运行。

关于Java 递归 : When does statements after a recursive method call executes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13926344/

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