title: Java Linked List search and delete method
body: <p>I have a project for computer science class and have everything done except for one method. The delete method. Basically I am making a linked list from user input and I need to be able to delete all nodes (which is done) and delete a single specified node. So I need to search through the list of nodes find the one to delete and delete it. Anything that can help is appreciated. If you have a solution please offer an explanation as I am trying to learn and just solve the problem.</p>
  
  <p>I'm not going to give you the GUI because I don't think it is necessary but here is the node class.</p>
  
  <pre><code>public class MagazineList {
  private MagazineNode list;
  
      public MagazineList(){
          list = null;
      }
  
  
  public void add(Magazine mag){
      MagazineNode node = new MagazineNode(mag);
      MagazineNode current;
  
      if(list == null) {
          list = node;
      }
      else {
          current = list;
          while(current.next != null)
              current = current.next;
          current.next = node;
      }   
  }
  public void insert(Magazine mag) {
    MagazineNode node = new MagazineNode (mag);
  
    // make the new first node point to the current root
    node.next=list;
  
    // update the root to the new first node
    list=node;
  }
  
  public void deleteAll() {
      if(list == null) {
  
      }
  
      else {
          list = null;
      }
  }
  public void delete(Magazine mag) {
      //Delete Method Goes Here
  }
  
  public String toString(){
      String result = " ";
  
      MagazineNode current = list;
      while (current != null){
          result += current.magazine + "\n";
          current = current.next;     
      }
      return result;
  }
  private class MagazineNode {
      public Magazine magazine;
      public MagazineNode next;
  
  
      public MagazineNode(Magazine mag){
          magazine = mag;
          next = null;
      }
  }
  }
  </code></pre>
  
  <p>UPDATE</p>
  
  <p>Here is the method I put together and it goes through the first part into the while loop and never recognizes the same item in the list. I used the exact same thing for the input and delete methods yet it will not recognize it. Any help is appreciated.</p>
  
  <pre><code>public void delete (Magazine mag) {
  MagazineNode current = list;
  MagazineNode before;
  
  before = current;
  
  if(current.equals(mag)){
      before.next = current;
      System.out.println("Hello");
  }
  
  while ((current = current.next)!= null){
      before = current.next;
      System.out.println("Hello Red");
  
      if(current.equals(mag)){
          current = before;
          System.out.println("Hello Blue");
      }
  }
   }
  </code></pre>