Рекурсивная функция printLinkedList, требующая печати (пустая строка). в до

void printLinkedList(node *head) { if (head == NULL) { printf(«(empty string)»); return; } printf(«Data: %dn», head->data); printLinkedList(head->next); }

Проблема в том, что если head не равен NULL, он прекрасно распечатает связанный список, но в самом конце он входит в if(head == NULL), потому что это рекурсивная функция, и печатает «(пустая строка)» для любой связанный список (пустой или нет). Я хочу напечатать «(пустая строка)», только если она изначально пуста. Как бы я закодировал это?

Вы уверены, что хотите использовать рекурсию для этого? (Это обучающее упражнение?)   —  person DJSweetness    schedule 30.10.2015

Ну, это было намного проще как итеративная функция, но нас попросили написать ее рекурсивно, чтобы лучше понять и попрактиковаться в рекурсии, чтобы ответить на ваш вопрос, да, это учебное упражнение.   —  person DJSweetness    schedule 30.10.2015

Источник: ledsshop.ru

Стиль жизни - Здоровье!