Итак, это код, который, я думаю, вы пытаетесь написать
void InsertBSTNode(TreeNode* &root, int val) {
if (root == NULL) {
root = new TreeNode;
root->data=val;
root->left=root->right=NULL;
}
else if (val<root->data)
InsertBSTNode(root->left,val);
else
InsertBSTNode(root->right,val);
}
Я исправил недопустимое использование возвращаемых значений и исправил ошибку указателя NULL, выделив узел на место, где вы делаете вставку.