Вы просто не можете.
Пока вы выполняете итерацию по любой структуре данных, вы всегда хотите, чтобы ваш алгоритм работал по-разному, ЕСЛИ он достиг конца структуры, что требует какой-либо проверки.Это верно, какой бы ни была ваша структура данных, и она не зависит от «пути», который вы перебираете: for (int i = 0; i ; ++ i), for (iterator it = myList.begin (); it! = mylist.end () ; it ++), а ( currentNode.hasChildren () ), а ( javaIterator.hasNext () ) ...
Тем не менее, независимо от того, что делает ваш цикл, проверка наличия доступного объекта на NULL никогда не станет узким местом вашего алгоритма.Это даже трудно сделать менее трудоемким ...
ЕДИНСТВЕННЫЙ способ избежать проверки - избежать самого цикла, поэтому записывать каждый шаг, лежащий в цикле, но для этого необходимо знатьразмер связанного списка во время компиляции, и в этом случае ваш компилятор мог оптимизировать ваш код лучше, чем вы, вероятно, сделали бы сами; -)