Редактировать: оригинальная проблема исправлена.
Новая проблема: цикл не прерывается для оператора или:
while(m->next != NULL || m->val != n)
{
cout<<"Looking for main node. Comparing"<<n<<" to "<<m->val<<endl;
m = m->next;
}
Он печатает все сравнения, в том числе два, которые абсолютно похожи. Любая причина, почему это не сломало бы это?
m = NULL
является оператором присваивания, m == NULL
это оператор сравнения, который будет использоваться в вашем if
заявление
Замечания:
проверка m
за NULL
должно быть сделано перед использованием его для равномерной печати (в cout
)
Если вы хотите продолжить цикл while до последнего элемента или до тех пор, пока val не будет равен n, то это должно быть так
while(m != NULL && m->val != n)
{
cout<<"Looking for main node. Comparing"<<n<<" to "<<m->val<<endl;
m = m->next;
}
Других решений пока нет …