private final V remove_semi_leaf ( BinTreeNode < K , V > node , BinTreeNode < K , V > prev , int son , BinTreeNode < K , V > m ) { if ( prev == null ) { root = m ; } else { if ( son == 0 ) prev . left = m ; else prev . right = m ; } return node . value ; }
to the only predecessor of node that could exist .