void print(int depth, struct node* p)
{
int i = 0;
if(p == NULL){ return; }
for(i = 0;i < depth; i++){
printf(" ");
}
printf("%d¥n",p->data);
print_tree(depth+1, p->left);
print_tree(depth+1, p->right);
}
print(0,root);
のような再帰についての質問です。
木構造をデバッガで追っていて不思議に思ったのですが、
a->b->c->d->b->e
のようにノードを移動していて、
dからbに移動した時、引数のdepthの値が
bが初めて呼び出されたときとかわらない1という事に気づきました。
再帰というのは、引数の値を初めて呼び出された時と同じように
とっておくのでしょうか?