Идея
1) В простейшем случае список уже отсортирован:
-> A
2) Теперь рассмотрим «следующий» случай (то есть, когда вы добавляете 1 новый элемент в список размером 1)
-> A [сейчас, я собираюсь попробовать добавить C]
Вы можете просто проверить, является ли C> A, и в этом случае вы добавляете "C" в конец (-> A-> C)
3) Мы можем обобщить случай (2): в любых последующих случаях вам придется идти по списку, пока вы не «увидите» новый узел, который> больше, чем тот, который вы вставляете.
-> A -> C [добавление B]
check 1: A (B > A)
check 2: C (B < C) !
Это означает, что мы можем заменить ссылки следующим образом:
заменить A -> C на 2 новых ссылки, 1 из A -> B, а также еще одну из B -> C.
Вставляя таким образом гарантии, что ваш список остается отсортированным.
* 1035 конкретно *
Таким образом, вам придется изменить метод insert (..) вашего приложения, чтобы он начинался с начала списка, и проверять каждый DoubleNode, переходя вниз и «запоминая», т.е. сохраняя предыдущий DoubleNode, пока он либо достигает конца списка --- ИЛИ он видит, что последний узел был <чем новый узел, а текущий узел> чем новый узел.