Jack
Jack

Reputation: 497

Convert a singly linked list to a doubly linked list

enter image description here Here's the code that I currently have. Only contains the addFirst method.

public void addFirst(E e) {     
    Node<E> newNode = new Node<E>(e); 
    if (tail == null)           
        head = tail = newNode; 
    else {
        newNode.next = head;    
        head = newNode;         
    }
    size++;
}

private static class Node<E> {  
        E element;
        Node<E> next;

        public Node(E e) {
            element = e;
      }
}

Trying to set up the 'previous' field

public void addFirst(E e) {     
    Node<E> newNode = new Node<E>(e); 
    if (tail == null)           
        head = tail = newNode; 
    else {
        newNode.next = head;
        firstElement.previous = newNode; //*
        head = newNode;
        newNode.previous = null;
    }
    size++;
}

private static class Node<E> {  
        E element;
        Node<E> next, previous; //adding previous field

        public Node(E e) {
            element = e;
      }
}

*I want firstElement.previous to point to newNode. How do I do that?

Upvotes: 1

Views: 856

Answers (1)

Hector Montero
Hector Montero

Reputation: 129

change:

firstElement.previous = newNode

to

head.previous = newNode;

Upvotes: 1

Related Questions