Таким образом, я должен считать узлы в круговом связанном списке рекурсивно.У меня есть заголовок, который я должен использовать:
int Recursive(node *head);
Можно ли считать узлы в этом списке только одним указателем?Каким будет алгоритм для этого?
int count(node* head) { if(head == nullptr) return 0; return countRecursive(head, head->next); } int countRecursive(node* head, node* current) { if(current == head) // our end condition! return 1; return 1 + countRecursive(head, current->next); } Basically we go in a circle and stop when we return to the head, adding 1 while we go.