public void DeleteToLeftOnValue(TData data)   // not inclusive
 {
     if (LeftNode.Data.Equals(data))
     {
         DeleteLeft();
     }
     else
     {
         LeftNode.DeleteToLeftOnValue(data);
     }
 }