Как я могу вставить новое целое число в список, когда список отсортирован?

Я хочу вставить новый элемент ( Integer) в отсортированный связанный список без изменения порядка, например: если связанный список выглядит так: 4 -> 6 -> 8 ->10 и после вызова метода sortedl(7), связанный список будет: 4 -> 6 ->7-> ->8->10

Я пытался написать код, но он всегда добавляет его после номера шесть!

любая идея?

1 ответ

Вы пересекаете свой связанный список, пока не встретите узел, который больше, чем число, которое вы хотите вставить. Давайте назовем эту ноту N+1. Я собираюсь вызвать узел до этого N-1. Название довольно условно.

Вы создаете новый узел, назовем его N, который представляет ваш новый номер (7 в примере).

Перед вставкой узел N-1 (содержащий значение 6) указывает на узел N+1 (содержащий значение 8).

Чтобы вставить, вы указываете N-1 на N, а N на N+1. Если это двойной связанный список, вы обновляете обратные указатели аналогичным образом.

Я пытался написать код, но он всегда добавляет его после номера шесть!

Если ваше входное значение равно 7 (от sortedI(7)), это действительно то, что вы хотите видеть как 6 < 7 < 8. Однако, если это произойдет для любого входного значения, опубликуйте свой код.

Другие вопросы по тегам