【发布时间】:2012-10-09 07:22:16
【问题描述】:
我已经编写了一个代码来使用队列(数组)按级别顺序打印树。
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;
}
}
}
我想将该方法转换为递归方法。 我试过了,但我没有得到正确的解决方案。是否可以将此类问题转换为使用递归调用?
【问题讨论】:
-
我还没有看到 Level Order Traversal 的递归版本。但如果有人想出一个,那就太好了。
-
有一个定理表明每个迭代算法都可以转换为递归算法,反之亦然。如果这有意义是另一个问题。