Ваш звонок на searchList
сделан, когда z
равен NULL
. Следовательно, он немедленно возвращается.
while ( z != NULL) {
printf("%c", z->c);
z = z->next;
}
search_result = searchList(z);
Цикл while
завершается, когда z
равно NULL
.
Ваша основная проблема в том, что у вас недостаточно переменных. Вам необходимо сохранить переменную, указывающую на начало списка, и другую переменную, которая будет использоваться при итерации по списку.
Вы также, кажется, путаете голову и хвост. Термин tail используется для обозначения узла, для которого next
равен NULL
. Термин head обозначает узел на другом конце списка.
В этом коде много других странностей, но я не хочу их решать, потому что вы спросили только об одной конкретной проблеме, и я скорее подозреваю, что это домашняя работа.