2016-11-12 2 views

ответ

0

Вы должны использовать i вместо rhs.head

while (i != 0) 
{ 
    out << " " << i; 
    i = i->next; 
} 

rhs.head != 0 не может быть изменен тем, что находится в цикле, поэтому, если оно ложно, цикл никогда не будет запущен, если он верен, он будет работать навсегда.

также i = rhs.head->next; всегда будет устанавливать i на второй узел (один за головой), а не после i.

0

Я предполагаю, что входной список пуст, поэтому rhs.head != 0 состояние не работает? В противном случае это фактически привело бы к бесконечному циклу, потому что rhs.head тестируется вместо i. Я предполагаю, что это должно было быть:

IntNode *i = rhs.head; 
out << rhs.head; 
while (i != 0) // note the i here 
{ 
    out << " " << i; 
    i = i->next; // again i here 
} 

Второй вопрос: что out поток, потому что по крайней мере, головной указатель должен быть напечатан там ...

Смежные вопросы