Мне нужно написать метод, который начинается с единственного связанного списка целых чисел и специального значения, называемого значением расщепления. Элементы списка не имеют особого порядка. Метод делит узлы на два связанных списка: один содержит все узлы, которые содержат элемент, меньший, чем значение разделения, и один, который содержит все остальные узлы. Если в исходном связанном списке есть повторяющиеся целые числа (т. Е. Любые два или более узла с одним и тем же элементом в них), то новый связанный список, который имеет этот элемент, должен иметь такое же количество узлов, которые повторяют этот элемент. Метод возвращает два заголовка - по одному для каждого из связанных списков, которые были созданы.Java Splitting integer Связанный список
Я провел много часов, пытаясь понять это, и думаю, что это самое близкое, но у меня есть ошибка при компиляции, что мой экземпляр CopyTail * IntNodes не может быть инициализирован. Я также могу ошибаться в своем коде .... Любая помощь, указывающая на меня в правильном направлении?
public static IntNode[ ] listSplitLessGreater(IntNode source, int splitter)
{
IntNode copyHeadLess;
IntNode copyTailLess;
IntNode copyHeadGreater;
IntNode copyTailGreater;
IntNode[ ] answer = new IntNode[2];
boolean less = true;
boolean greater = true;
// Handle the special case of the empty list.
if (source == null)
return answer; // The answer has two null references .
//Split list into two lists less and greater/equal than splitter.
while (source.link != null)
{
if (splitter < source.data)
{
if (less)
{
copyHeadLess = new IntNode(source.data, null);
copyTailLess = copyHeadLess;
less=false;
}
else
{
source = source.link;
copyTailLess.addNodeAfter(source.data);
copyTailLess = copyTailLess.link;
}
}
else
{
if (greater)
{
copyHeadGreater = new IntNode(source.data, null);
copyTailGreater = copyHeadGreater;
greater=false;
}
else
{
source = source.link;
copyTailGreater.addNodeAfter(source.data);
copyTailGreater = copyTailGreater.link;
}
}
}
//Return Head References
answer[0] = copyHeadLess;
answer[1] = copyHeadGreater;
return answer;
}
+1 приятная работа ;-) – GingerHead