void add(int value) { if (root) { root->add(value); } else { root = new BSTNode(value); } }
void add(int newValue) { subtreeSize++; if (newValue <= value) { if (left) { left->add(newValue); } else { left = new BSTNode(newValue); } } else { if (right) { right->add(newValue); } else { right = new BSTNode(newValue); } } }