title: Printing out a linked list using toString
body: <p>Ok guys, so I am trying to learn how to print out a linked list.  I have all the methods that I would need to use for the list, but I can't figure out how to display the values of the nodes.  Right now there is nothing in my main method because I kept getting errors trying to call non static methods in the main.  I have a toString method that displays the contents of the list.  How would I go about calling this toString to display the value of each node?  Any advice will be greatly appreciated.</p>
  
  <p>Here is the node class:</p>
  
  <pre><code>public class LinkedListNode
  {
  
      private int data;
      private LinkedListNode next;
  
  
      public LinkedListNode(int data)
      {
          this.data = data;
          this.next = null;
      }
  
      public int getData()
      {
          return data;
      }
  
      public void setData(int d)
      {
          data = d;
      }
  
      public LinkedListNode getNext()
      {
          return next;
      }
  
      public void setNext(LinkedListNode n)
      {
          next = n;
      }
  }
  </code></pre>
  
  <p>Here is the LinkedList class that contains the main and methods to manipulate the list:</p>
  
  <pre><code>public class LinkedList {
  
      public LinkedListNode head;
  
      public static void main(String[] args) {
  
      LinkedList l = new LinkedList();
      l.insertFront(0);
      System.out.println(l.toString());
  
      }
  
      public LinkedList() {
          this.head = null;
      }
  
      public int removeFront(){
          if(head == null){
              System.out.println("Error - Attempting to call removeFront() on empty list");
              return 0;
          }else{
              int temp = head.getData();
              head = head.getNext();  
              return temp;
          }
  
      }
  
      public void insertFront(int data){
          if(head == null){
              head = new LinkedListNode(data);
          }else{
              LinkedListNode newNode = new LinkedListNode(data);
              newNode.setNext(head);
              head = newNode;
          }       
      }
  
      public void insertBack(int data){
          if(head == null){
              head = new LinkedListNode(data);
          }else{
              LinkedListNode newNode = new LinkedListNode(data);
              LinkedListNode current = head;
              while(current.getNext() != null){
                  current = current.getNext();
              }
              current.setNext(newNode);
          }       
      }
  
      public int removeBack(){
          if(head == null){
              System.out.println("Error - Attempting to call removeBack() on empty list");
              return 0;
          }else if (head.getNext() == null){
              int temp = head.getData();
              head = null;
              return temp;
          }else{
  
              LinkedListNode current = head;
              while(current.getNext().getNext() != null){
                  current = current.getNext();
              }
              int temp = current.getNext().getData();
              current.setNext(null);
              return temp;
          }       
      }
  
      public String toString(){
          String retStr = "Contents:\n";
  
          LinkedListNode current = head;
          while(current != null){
              retStr += current.getData() + "\n";
              current = current.getNext();
  
          }
  
          return retStr;
      }
  
      public LinkedListNode getHead() {
          return head;
      }
  
      public void setHead(LinkedListNode head) {
          this.head = head;
      }
  }
  </code></pre>