public void Remove() { Node <E> n = lastRet; if (n == null) { throw new IllegalStateException(); } lastRet = null; parent.mutex.Lock(); try { if (n.item != null) { parent.Unlink(n); } } finally { parent.mutex.UnLock(); } }