У вас целочисленное переполнение. [1,9,9,9,9,9,9,9,9,9]
должно представлять число 9 999 999 991. Вы пытаетесь преобразовать список в int
(number1
), но наибольшее число, которое может содержать int
, составляет 2 147 483 647, поскольку int
- это 32-разрядное целое число со 2-мя знаками.
В этой ситуации было бы очень хорошо, если бы Java выдал исключение, чтобы мы знали, почему оно не работает. Нет такой удачи. Вместо этого он просто отбрасывает старшие биты, превышающие 32 бита, давая какое-то бессмысленное отрицательное значение (отрицательное, потому что бит знака (первый бит) равен 1).
Итак, вам нужно выполнить добавление напрямую в виде связанных списков без преобразования в int
и обратно. Вы можете очень удобно иметь три связанных списка, каждый из которых содержит до 11 элементов (а также до миллиона элементов, если вам это нужно), так что это не вызовет переполнения.
Если вы не знаете, какое число c переполнение, пожалуйста, посмотрите. Ваша поисковая система - ваш друг.