gpt4 book ai didi

algorithm - 将迭代算法转换为递归

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:54 26 4
gpt4 key购买 nike

我已经编写了一个代码来使用队列(数组)按 Level Order 打印树。

    void printLevelOrder(node *root) {
node* queue[10];
node*t=root;
int y=0;
queue[y]=t;
for(int i=0;i<10;i++)
{
printf("%d,",queue[i]->val);

t=queue[i];
if((t->left)!=NULL){
queue[++y]=t->left;
}
if((t->right)!=NULL){
queue[++y]=t->right;
}
}
}

我想将方法​​转换为递归方法。我试过了,但没有得到正确的解决方案。是否可以将此类问题转换为使用递归调用?

最佳答案

可以使这个递归,但在这种情况下,结果可能看起来像上面执行的代码中的循环体,然后为队列中的下一个元素调用自身。 不可能将其转换为一种在树遍历算法中更常见的递归,其中递归方法为它作为参数接收的子节点调用自身。因此没有预期的性能提升——你仍然需要队列或类似这样的结构——而且我真的不明白执行转换的意义。

关于algorithm - 将迭代算法转换为递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12794819/

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