Ponieważ w implementacji LinkedList :) występuje naturalny porządek.
Domyślny naturalny porządek wyznaczany jest na obiekcie klasy String, na podstawie metody hash i equals, która jeśli nie jest zdefiniowana przez Ciebie- działa w oparciu o nie samą długość stringu, ale ' naturalny porządek wystąpienia wyrazów w stringu'
http://www.java67.com/2016/02/how-to-sort-linkedlist-in-java-example.html
W przypadku innym niż NATURALNY PORZĄDEK
wystarczy zaglądnąc do dokumentacji funkcji compereTo(); // zwraca nam 3 możliwe wartości
1 LUB -1 LUB 0
Jej implementacja działa w taki sposób; ( jest on też zależny od obiekt ui wewnętrznej implementacji tej metody, bo np... dla wrapera Integer będa to wartości, dla stringa zależnie albo alfabetyczny dla Linked, albo jeśli mamy np Set<String> i jest to TreeSet to bedzie to na bazie alfabetycznym, w przeciwnym razie np HashSetu, bedzie to "domyślny' nie dający gwarancji uporządkowania. Linked- daje gwarancje naturalnego porządku
1) Bierze element A i B jeśli element A ( np. na bazie Stringa to jego długość ) jest większy od Elementu B
zwróci nam 1
2) jeśli element A jest mniejszy od Elementu B
zwróci nam -1
w pozostałym po prostu zwróci 0 .
w ten sposób na bazie liczb tworzona jest kolejność