Функция DisplayHotel в порядке! Проблема с функцией createhotel.
Когда вы делаете:
while( current->next != NULL ){
current->next = current->next->next;
}
Здесь вы фактически изменяете список, удаляя элемент.
Попробуйте сделать:
while( current->next != NULL ){
current = current->next;
}
Также наилучшим подходом было бы всегда иметь указатель на последний элемент списка в заголовке, поэтому вы добавляете новые элементы напрямую, а не всегда просматриваете весь список! (не забудьте обновить голову при добавлении нового элемента)