Я написал функцию, которая объединяет два связанных списка. (Обратите внимание, что функция основана на предварительно заданном коде на случай, если вам интересно, почему я вызываю функцию node(i)
).
public SLL mergeUnsorted(SLL otherList)
{
// find length of this list
int length = 0 ;
Iterator itr = this.iterator() ;
while (itr.hasNext())
{
Object elem = itr.next() ;
length++ ;
}
// get each node from this list and
// add it to front of otherList list
int i = length -1 ;
while (i >= 0)
{
// returns node from this list
SLLNode ins = node(i) ;
ins.succ = otherList.first ;
otherList.first = ins ;
i-- ;
}
return this ;
}
первая часть O (n)
вторая часть O (n)
общая сложность O (n)
или это O (n ^ 2), потому что я перебираю список дважды?