public void DeleteNode(N node)
 {
     if (Compare(node.Key, Minimum) < 0 || Compare(node.Key, Maximum) > 0)
     {
         return;
     }
     _redBlackTree.DeleteNode(node);
 }
        public bool Remove(KeyValuePair <K, V> item)
        {
            N node = _redBlackTree.Find(item.Key);

            if (node == null)
            {
                return(false);
            }
            if (ReferenceEquals(node.Value, null))
            {
                if (!ReferenceEquals(item.Value, null))
                {
                    return(false);
                }
            }
            else if (!node.Value.Equals(item.Value))
            {
                return(false);
            }
            _redBlackTree.DeleteNode(node);
            return(true);
        }