void printLinkedList(node *head)
{
if (head == NULL)
{
printf("(empty string)");
return;
}
printf("Data: %d\n", head->data);
printLinkedList(head->next);
}
Проблема в том, что если head не равен NULL, он прекрасно распечатает связанный список, но в самом конце он входит в if(head == NULL), потому что это рекурсивная функция, и печатает «(пустая строка)» для любой связанный список (пустой или нет). Я хочу напечатать «(пустая строка)», только если она изначально пуста. Как бы я закодировал это?
Вы уверены, что хотите использовать рекурсию для этого? (Это обучающее упражнение?) — person DJSweetness schedule 30.10.2015
Ну, это было намного проще как итеративная функция, но нас попросили написать ее рекурсивно, чтобы лучше понять и попрактиковаться в рекурсии, чтобы ответить на ваш вопрос, да, это учебное упражнение. — person DJSweetness schedule 30.10.2015
