Как использовать функцию return в рекурсии.
У меня есть следующий код для обхода дерева по порядку:
void inOrder(struct node* r) { if (r==NULL) return; else{ inOrder(r->left); printf("%d ", r->value); inOrder(r->right); } }
У меня есть это глупое сомнение:
Когда самый нижний левый дочерний элемент передается как root, он не является нулевым.
На следующей итерации корень будет равен нулю (так как левый дочерний элемент самого нижнего левого дочернего элемента будет равен нулю), и он столкнется с возвращением.
Разве этот оператор return не передаст элемент управления основной функции (или где бы она ни вызывалась) без какой-либо печати?
Вернется по-разному ведут себя в рекурсию?
Что я уже пробовал:
<pre> void inOrder(struct node* r) { if (r==NULL) return; else{ inOrder(r->left); printf("%d ", r->value); inOrder(r->right); } }