Given a set of numbers insert them so that they are ordered ie.
add(5) add(3) add(6) add(2) Output: 6 5 3 2 GetNumber() returns the number of that term insertAfter() inserts that node after the pointer insertAtHead() inserts as the head node Term is the Node which holds the number
How can I refactor this working code?
boolean inserted = false;
Node pointer = head;
if (pointer == null || term.getNumber() > pointer.data.getNumber()) {
// If head is empty insert there or if term is larger than head.
insertAtHead(term);
} else if(pointer.next == null) {
insertAfter(term, head);
} else {
while (pointer.next != null) {
//Insert at end.
if (term.getNumber() > pointer.next.data.getNumber()) {
insertAfter(term, pointer);
inserted = true;
break;
}
pointer = pointer.next;
}
if (!inserted) {
//If not inserted it must be the smallest so add to the end.
insertAfter(term, pointer);
}
}
printList();