code: public boolean removeLastOccurrence(Object o) {
          Objects.requireNonNull(o);
          for (Node<E> p = last(); p != null; p = pred(p)) {
              final E item;
              if ((item = p.item) != null
                  && o.equals(item)
                  && ITEM.compareAndSet(p, item, null)) {
                  unlink(p);
                  return true;
              }
          }
          return false;
      }
docs: Removes the last occurrence of the specified element from this deque.
  If the deque does not contain the element, it is unchanged.
  More formally, removes the last element {@code e} such that
  {@code o.equals(e)} (if such an element exists).
  Returns {@code true} if this deque contained the specified element
  (or equivalently, if this deque changed as a result of the call).
  
  @param o element to be removed from this deque, if present
  @return {@code true} if the deque contained the specified element
  @throws NullPointerException if the specified element is null