Sorted Doubly linked List
I required to create a sorted doubly linked list for my homework. Inside the SortedStringList, I need to implement a method called insert(). I have some problem in doing so. I don't what is going wrong to my code below:
Code:
public class SortedStringList {
private static class Node {
public String value;
public Node previous, next;
public Node(String v, Node p, Node n) {
value = v;
previous = p;
next = n;
}
}
private Node first;
private Node last;
public SortedStringList(){
this.first = null;
this.last = null;
}
public void insert(String s){
Node newnode = new Node(s,this.first,this.last);
if(first == null){
first = newnode;
}
else
if(first.value.compareTo(s) >= 0){
newnode.next = first;
newnode.previous = null;
first = newnode;
last = first;
}
else
{
Node current = first;
newnode.previous = first;
while(current.value.compareTo(s)<=0 ){
if(current.next == null){
current.next = newnode;
first = current;
last = newnode.next;
}
first.previous = current;
current = current.next;
}
first.previous.next = newnode;
newnode.next = current;
current = first;
}
}
}
Can somebody please give me some idea?