Здравствуйте, Тёмчик, Вы писали:
Тё>
Тё>class Node {
Тё>public:
Тё>char *value;
Тё>Node *next;
Тё>}
Тё>Node* reverse(Node *head) {
Тё>...
Тё>}
Тё>
Common!
Тё>Там не нужен итератор, это твоя профессиональная деформация от C++ сказывается. Целочисленного индекса по массиву более, чем достаточно.
По какому массиву? Ты же сам сказал, что может быть всё что угодно. К тому же в случае с С-строкой итератор вырождается в обычный указатель, никакого оверхеда. Тут наоборот есть вероятность, что индекса может не быть либо он будет O(n). Твой подход с индексами — отстой.
Если же хочется скорости на х86, то надо смотреть на что-то типа _mm_shuffle_epi8.