private E unlinkLast(){
  Node<E> l=last;
  if (l == null)   return null;
  Node<E> p=l.prev;
  E item=l.item;
  l.item=null;
  l.prev=l;
  last=p;
  if (p == null)   first=null;
 else   p.next=null;
  --count;
  notFull.signal();
  return item;
}

private E unlinkLast ( ) { Node < E > l = last ; if ( l == null ) return null ; Node < E > p = l . prev ; E item = l . item ; l . item = null ; l . prev = l ; last = p ; if ( p == null ) first = null ; else p . next = null ; -- count ; notFull . signal ( ) ; return item ; }
removes and returns last element , or null if empty .
