Я не думаю, что вы далеко. Основная проблема, которую я вижу, заключается в том, что вы не имеете дело с указателем first
в своем классе List
.
Когда вы добавляете значение в конец списка, как это первое значение, которое будет добавлен в список особый случай, потому что вы также должны обновить указатель first
. Ваш код этого не делает.
Другая необычная вещь в вашем коде состоит в том, что у вас есть эти count
и sum
переменные. Кажется, вы пытаетесь сохранить промежуточную сумму длины списка и суммы списка. Это не так, но это необычно. Обычно вы вычисляете их при необходимости, а не постоянно. Кроме того, если вы продолжаете действовать таким образом, вам нужно добавить count
и sum
в ваш список. На данный момент у вас есть список в одной переменной, а его длина и сумма в разных переменных. Это плохой дизайн, потому что между переменными нет тесной связи. Представьте, что у вас есть два списка. Как бы вы обновляли переменные count
и sum
? Лично я бы просто удалил код, относящийся к count
и sum
, просто вычислил эти количества, когда они вам нужны.