Конструкция
while (link_num > path) {
link = link->prev;
link_num --;
}
и конструкция
while (link_num-- > path) {
link = link->prev;
}
ведь эквиваленты, правильно? Почему тогда разные результаты получаются?