0

据我所知,递归函数是一个自称的函数,它具有具有基本情况的特征。这是一个用于二叉树的前序遍历的函数。这是递归函数吗?基本情况的缺失让我感到困惑。

void pre_order(struct node* current){ // preorder traversal

    printf("%d\n",current->data);

    if(current->left != NULL){
        pre_order(current->left);
    }

    if(current->right !=NULL){
        pre_order(current->right);
    }
}
4

1 回答 1

2

因为它调用自己,所以它是一个递归函数。就是这么简单。这里还有一个基本案例,但可能有点隐藏。当我们到达这个二叉树中的叶子时,左右子节点都将等于 null,因此不会发生更多的递归调用。这是我们的基本情况,有点隐藏。

于 2012-10-27T10:00:03.767 回答