Как я могу вставить новое целое число в список, когда список отсортирован?
Я хочу вставить новый элемент ( 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. Однако, если это произойдет для любого входного значения, опубликуйте свой код.