gpt4 book ai didi

java - 获取递归调用中函数的阶数

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:13:44 26 4
gpt4 key购买 nike

在递归调用中检索函数顺序的最简单方法是什么。例如,如果我们有一个递归函数,它会不断调用自身直到找到基本情况,然后一次返回一个函数。第一个返回的函数是 0 阶的,第二个是 1 阶的,依此类推...检索订单信息的简单方法是什么?比如说,当它是三阶函数时,我想做一些特别的事情。

编辑:我希望堆栈顶部的函数为零。

Edit2:我要解决的问题是返回二叉树有序遍历的第n个元素。

最佳答案

如果你从一个看起来像这样的递归函数开始

void recursive(int p1, String p2, long p3) {
...
if (someCondition) {
recursive(nextP1, nextP2, nextP3);
}
}

改成这样:

void recursive(int p1, String p2, long p3, int level) {
...
if (someCondition) {
recursive(nextP1, nextP2, nextP3, level+1);
}
}

现在通过调用从零开始水平

recursive(initialP1, initialP2, initialP3, 0);

level 将指示您上面的recursive 的调用次数。

编辑:(顶部零)

您还可以转换函数以返回其级别以实现“顶部零”策略:

int recursive(int p1, String p2, long p3) {
if (baseCase) {
return 0;
}
...
int level = 0;
if (someCondition) {
level = 1+recursive(nextP1, nextP2, nextP3);
}
return level;
}

请注意,在这种情况下,直到最后一次递归调用返回后,您才能找到您的关卡

关于java - 获取递归调用中函数的阶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432724/

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