0
У меня есть следующий код:Возврат суммы значений в связанном списке
int sum(LinkedList * list) {
assert(list!=NULL);
Node *currentNode = list->head;
int sum = 0;
for (currentNode = currentNode->next; currentNode !=NULL; currentNode = currentNode -> next) {
sum = sum + currentNode->data;
}
return sum;
}
Я хочу, чтобы вернуть сумму всех значений в связанном списке * списке. Тем не менее, я продолжаю получать ошибку сегментации. Может ли кто-нибудь помочь мне определить фатальную ошибку?
Не уверен в ошибке, но вы пропускаете первый элемент списка, потому что вы начинаете цикл с 'for (currentNode = currentNode-> next;'. Оно должно быть 'for (currentNode = list -> head; ' – Barmar
Вы никогда не проверяете, имеет ли значение' list-> head' значение NULL. –
Возможно, было бы более читаемым пропустить установку 'currentNode' до цикла for:' for (currentNode = list-> head; currentNode ! = NULL; currentNode = currentNode-> next) ' –