Why is this removing all elements from my LinkedList?

Posted by Brian on Stack Overflow See other posts from Stack Overflow or by Brian
Published on 2012-10-07T03:33:57Z Indexed on 2012/10/07 3:37 UTC
Read the original article Hit count: 118

Why is my remove method removing every element from my Doubly Linked List? If I take out that if/else statements then I can successfully remove middle elements, but elements at the head or tail of the list still remain. However, I added the if/else statements to take care of elements at the head and tail, unfortunately this method now removes every element in my list. What am I do wrong?

public void remove(int n)
{
   LinkEntry<E> remove_this = new LinkEntry<E>();

   //if nothing comes before remove_this, set the head to equal the element after remove_this
   if (remove_this.previous == null)
       head = remove_this.next;
   //otherwise set the element before remove_this equal to the element after remove_this
   else
       remove_this.previous.next = remove_this.next;

   //if nothing comes after remove_this, set the tail equal to the element before remove_this
   if (remove_this.next == null)
       tail = remove_this.previous;
   //otherwise set the next element's previous pointer to the element before remove_this
   else
       remove_this.next.previous = remove_this.previous;

   //if remove_this is located in the middle of the list, enter this loop until it is
   //found, then remove it, closing the gap afterwards.
   int i = 0;
   for (remove_this = head; remove_this != null; remove_this = remove_this.next)
   {
       //if i == n, stop and delete 'remove_this' from the list
       if (i == n)
       {               
           //set the previous element's next to the element that comes after remove_this
           remove_this.previous.next = remove_this.next;
           //set the element after remove_this' previous pointer to the element before remove_this
           remove_this.next.previous = remove_this.previous;
           break;
       }
       //if i != n, keep iterating through the list
       i++; 
   }
}

© Stack Overflow or respective owner

Related posts about java

Related posts about linked-list