Я думаю, ваше соглашение об именах затрудняет понимание кода.Попробуйте изменить код добавления пользовательского ввода в массив с
llists[i] = add(scanner.nextInt());
на
llists[i] = scanner.nextInt();
Я думаю, что вы смешали 2 структуры данных, используя почти идентичные имена, то есть длямассив и связанный список.Использование add можно найти здесь: https://www.geeksforgeeks.org/java-util-linkedlist-add-method-in-java/
Попробуйте использовать это,
// create a sorted linked list from user input
LinkedList lList = new LinkedList();
Scanner scanner = new Scanner(System.in);
// define how many nodes will be in the list
System.out.println("How many nodes would you like to Enter:");
int n = scanner.nextInt();
int input[] = new int[n];
// enter each node
System.out.println("Enter the nodes:");
for (int i = 0; i < n; i++)
{
// store values into the list
int currInput = scanner.nextInt();
lList.add(currInput);
input[i] = currInput;
}
System.out.println("Given Linked List: ");
System.out.println(Arrays.toString(input));
Также, вы не против добавить свое определение TreeNode.
PS, таммогут быть и другие интерпретации для кода Даниэля Роджера, например, функция add (), но я попытался разбить ее на простейшее, что мог.