boolean delete ( ) { Node < E > b = getPrev ( ) ; Node < E > f = getNext ( ) ; if ( b != null && f != null && ! f . isMarker ( ) && casNext ( f , new Node < E > ( f ) ) ) { if ( b . casNext ( this , f ) ) f . setPrev ( b ) ; return true ; } return false ; }
Tries to mark this node as deleted failing if already deleted or if this node is header or trailer .