Я должен рекурсивно работать с круговым односвязным списком в C, моя проблема в том, что я рекурсивен, я не могу правильно распечатать список, и у меня есть некоторые проблемы с доступом к ключу tmp-> в функции display () (сегментация ошибка из-за незаконного доступа), когда я нажимаю более 1 элемента и хочу отобразить список позже. И tmp, и list объявлены как struct node* tmp = NULL; и struct node* list = NULL; Основной экстракт:
case 8:
tmp = list;
if (tmp->next == tmp)
printf("\n%d\n", tmp->key);
else
display (list, tmp);
break;
Функция:
void display (struct node* head, struct node* tmp){
if (head != NULL){
if (tmp != head){
printf ("%d ", tmp->key);
tmp = tmp->next;
display(head, tmp);
}
}
}