private TreeDictionary <TKey, TValue, TComparer> FindAndRemoveMaxKeyFromNonEmpty(out TKey maxKey, out TValue maxKeyValue) { if (_right.Count() == 0) { maxKey = _key; maxKeyValue = _value; return(_left); } return(NearlyBalanced(_left, _right.FindAndRemoveMaxKeyFromNonEmpty(out maxKey, out maxKeyValue))); }