func (l *List) Del(v interface{} /* val */) *El {
	cur := l.search(v, true, true)

	if cur == nil || l.less(v, cur.val) {
		return nil
	}

	l.len--

	h := cur.height()
	for i := h - 1; i >= 0; i-- {
		*l.up[i] = cur.nexti(i)
	}

	if l.autoreuse {
		Reuse(cur)
	}

	return cur
}
// Del deletes first occurrence equals to v and returns it or nil if it wasn't existed
Del deletes first occurrence equals to v and returns it or nil if it wasn't existed
// Del deletes first occurrence equals to v and returns it or nil if it wasn ' t existed
func (l *List) Del(v interface{} ) *El {
	cur := l.search(v, true, true)
	if cur == nil || l.less(v, cur.val) {
		return nil
	}
	l.len--
	h := cur.height()
	for i := h - 1; i >= 0; i-- {
		*l.up[i] = cur.nexti(i)
	}
	if l.autoreuse {
		Reuse(cur)
	}
	return cur
}
func ( l * List ) Del ( v interface { } ) * El { cur := l . search ( v , true , true ) if cur == nil || l . less ( v , cur . val ) { return nil } l . len -- h := cur . height ( ) for i := h - 1 ; i >= 0 ; i -- { * l . up [ i ] = cur . nexti ( i ) } if l . autoreuse { Reuse ( cur ) } return cur }
Del deletes first occurrence equals to v and returns it or nil if it wasn't existed
Del deletes first occurrence equals to v and returns it or nil if it wasn ' t existed
/* val */