I'm basically trying to insert a number into my tree. Initially I pass the command insert(root, 10), and then my function recursively traverses through the tree to insert the value. The traversal works fine, but my tree won't get updated. I already built a tree in this class through my constructor. The inorder traversal of my tree before the insert function is {0, 1, 2, 3, 4, 5, 6, 7 ,8, 9}, and its the same after the insertion as well
My insert function:
private: 
node* root
void insert(node* ptr, int num) {
            if (ptr == NULL) {
                    ptr = new node;
                    ptr->data = num;
                    ptr->left = NULL;
                    ptr->right = NULL;
                    return;
            }
            else if (ptr->data >= num) {
                    insert(ptr->left, num);
            }
            else if (ptr->data < num) {
                    insert(ptr->right, num);
            }
    }
private member of my class that creates initial tree
node* createTree(int array[], int start, int end) {
            if(start > end) {
                    return NULL;
            }
            int mid;
            node* newNode = new node;
            if (((start + end) % 2) != 0) {
                    mid = ((start + end) / 2) + 1;
            }
            else {
                    mid = (start + end) / 2;
            }      
            newNode->data = array[mid];
            newNode->left = createTree(array, start, mid - 1);
            newNode->right = createTree(array, mid + 1, end);
            cout << newNode->data << " " << newNode << endl;
            return newNode;
    }
The constructor
BST(int array[], int length) {
            root = createTree(array, 0, length - 1);
    }
 
     
    