struct TreeNode* insertIntoBST(struct TreeNode* root, int val){ if(root == NULL) { struct TreeNode *new_val = malloc(sizeof(struct TreeNode)); new_val->val = val; new_val->left = new_val->right = NULL; return new_val; } else { if (root->val >= val) root->left = insertIntoBST(root->left, val); else root->right = insertIntoBST(root->right, val); } return root; }