Во-первых, я рекомендую исправить некоторые вещи с помощью вашего кода.
В своем цикле вы проверяете data
член helpNode
перед тестированием, чтобы увидеть, действительно ли helpNode
действительный.Представьте, что вы находитесь на последнем узле - и в конце, пока выполняется следующее - что теперь проверяется вверху?
helpNode=helpNode->next;
Во-вторых, как только вы проверили на helpNode
, следующийперед проверкой атрибутов data
следует проверить, действительно ли data
, что если data
равно NULL
?
А теперь подумайте о том, что проверяет ваш цикл, он проверяет, что getID() != ID
, иа внутри цикла вы тестируете на ID
, getID() == ID
?имеет ли это смысл?
Я рекомендую, чтобы в вашем цикле вы просто проверяли наличие следующего узла и data
, а затем в цикле проверяли, что ID
совпадает, и возвращаете, если true.