Мне присваивается указатель на головной узел отсортированного дважды связанного списка и целое число для вставки в список. Мне предлагается создать узел и вставить его в соответствующую позицию в списке так что его упорядоченный порядок поддерживается. Головной узел может быть NULL.Вставка в отсортированном двусвязном списке
Пример ввода
NULL, то данные = 2
< NULL - 2 < -> 4 < -> 6 -> NULL, то данные = 5
Пример вывода
< NULL - 2 -> NULL
< NULL - 2 < -> 4 < -> 5 < -> 6 -> NULL
Я пробовал вышеуказанную проблему. Но моя программа заканчивается из-за таймаута. Что я делаю неправильно в приведенном ниже коде. Предположим, что класс узла и основная функция уже существуют. Спасибо заранее!!
Node SortedInsert(Node head,int data) {
Node newn = new Node();
newn.data = data;
newn.prev=null;
newn.next = null;
Node ptr = head;
Node nex=head.next;
while(ptr!=null && nex!=null) {
if(ptr.data<=newn.data && nex.data>=newn.data) {
newn.next = nex;
newn.prev = ptr;
nex.prev = newn;
ptr.next = newn;
}
else {
nex=nex.next;
ptr=ptr.next;
}
}
if(ptr!=null && nex==null) {
if(ptr.data>=newn.data) {
newn.next=ptr;
ptr.prev=newn;
newn.prev=null;
head=newn;
}
else {
ptr.next=newn;
newn.prev = head;
}
}
if(head==null) {
head = newn;
}
return head;
}
При объявлении вы называете переменную «aux1», но затем ссылаетесь на нее как «aux». А во втором, если от последнего есть «nexwn», который должен быть «newn». И вы не возвращаетесь в голову в большинстве случаев. – Syntac
Спасибо за ваше издание, вы правы –
Нет проблем. Очень чистое и приятное решение. – Syntac