Я новичок и практиковал программу по вставке узла на первой позиции, когда несколько элементов уже присутствуют в связанном списке. Вот мой фрагмент кода
class LinkedList{
int data;
LinkedList next;
void insertNodeAtTheEnd(int d, LinkedList head){
LinkedList temp;
temp = head;
while(temp.next != null){
temp = temp.next;
}
LinkedList newNode = new LinkedList();
newNode.data = d;
newNode.next = null;
temp.next = newNode;
}
void insertNodeAtGivenPosition(int d , int pos , LinkedList head){
LinkedList temp;
temp = head;
int tempPos = 1;
LinkedList newNode = new LinkedList();
LinkedList before = temp;
if(pos == 1){
newNode.data = d;
newNode.next = temp;
temp = newNode;
}
else {
while(temp != null){
if(pos == tempPos){
newNode.data = d;
newNode.next = before.next ;
before.next = newNode;
}
before = temp ;
temp = temp.next ;
tempPos++;
}
}
}
void printLinked(LinkedList head){
LinkedList temp = head;
while(temp.next != null){
System.out.print(temp.data + "->");
temp = temp.next;
}
System.out.print(temp.data +"\n");
}
}
class LinkedListMain{
public static void main(String[] args){
LinkedList node1 = new LinkedList();
node1.data = 10;
node1.next = null;
LinkedList head;
head = node1;
head.insertNodeAtTheEnd(8, head);
head.insertNodeAtTheEnd(6, head);
head.insertNodeAtTheEnd(7, head);
head.insertNodeAtTheEnd(11, head);
head.insertNodeAtTheEnd(5, head);
head.insertNodeAtTheEnd(2, head);
head.printLinked(head);
head.insertNodeAtGivenPosition(4 , 3 , head); //line 1
head.printLinked(head);
head.insertNodeAtGivenPosition(1 , 1 , head); //line2
head.printLinked(head);
}
}
. Для приведенного выше кода, после вставки элемента в третью позицию (строка 1) с использованием метода "insertNodeAtGivenPosition ()", код работает нормально, и результат показан ниже
10->8->6->7->11->5->2
10->8->4->6->7->11->5->2
Но когда я пытаюсь использовать тот же лог c для вставки элемента в первую позицию (строка 2) и печати списка, первый элемент не вставляется, и вывод выглядит как
10->8->6->7->11->5->2
10->8->4->6->7->11->5->2
10->8->4->6->7->11->5->2
Что я делаю не так? Кажется, есть некоторая проблема со значением «голова».