hy!
schreib ein kleines programm, das mir eine einfach verkettete liste mittels zufallszahlen erstellt und anschließend das kleinste element an die erste stellen fügen soll. es geht soweit, dass die liste gefüllt und gedruckt wird, und er kompiliert auch alles, nur bei der methode moveMinToFront() regt er sich beim ausführen auf und schreibt mir eine nullPointerException hin (zeile 22). hab aber irgendwie null ahnung, warum, ich muss da doch die werte der beiden knoten vergleichen können, oder??
hoff irgendwer kann mir weiterhelfen! danke schon mal im voraus, lg
schreib ein kleines programm, das mir eine einfach verkettete liste mittels zufallszahlen erstellt und anschließend das kleinste element an die erste stellen fügen soll. es geht soweit, dass die liste gefüllt und gedruckt wird, und er kompiliert auch alles, nur bei der methode moveMinToFront() regt er sich beim ausführen auf und schreibt mir eine nullPointerException hin (zeile 22). hab aber irgendwie null ahnung, warum, ich muss da doch die werte der beiden knoten vergleichen können, oder??
hoff irgendwer kann mir weiterhelfen! danke schon mal im voraus, lg
Code:
public class ListenelementVerschieben {
public static class Node {
Node next;
int val;
Node (int val) {
this.val = val;
next = null;
}
}
static Node head = null;
public static void moveMinToFront() {
Node p = head;
Node min = head;
Node prev = null;
while (p != null) {
p = p.next;
if (p.val<min.val) { //in dieser zeile is die nullPointerException!!!
min=p;
}
}
p=head;
while (p!=min) {
prev = p;
p = p.next;
}
prev.next = min.next;
min.next = head;
head = min;
}
public static void main(String[] args) {
Node x;
int val;
for (int i=0;i<10;i++) {
val = (int)(Math.random()*100);
x=new Node(val);
x.next=head;
head=x;
}
System.out.println("\n\nlist values: ");
printList(head);
moveMinToFront();
printList(head);
}
static void printList(Node h) {
Node cur;
cur=h;
while (cur!=null) {
System.out.print(cur.val+"->");
cur=cur.next;
}
System.out.println('\n');
}
}