Hello, OnlineGDB Q&A section lets you put your programming query to fellow community users. Asking a solution for whole assignment is strictly not allowed. You may ask for help where you are stuck. Try to add as much information as possible so that fellow users can know about your problem statement easily.

why when this fun delete a node it print a random number ? insted of the deleted node ?

+2 votes
asked Oct 10, 2018 by hiba

void deletenode(node * root,int data){
        
     if(root==NULL)return;
      if(data>root->data){
          deletenode(root->right,data);
      }else if(data<root->data){
          deletenode(root->left,data);
      }
        else{
        node * todelete;
        todelete=root;
        if(root->left==NULL){
             root=root->right;
        }
         
        else if(root->right==NULL){
             root=root->left;
        }
        else{
            node * parent;
            parent=root;
            todelete=root->left;
            while(todelete->right!=NULL){
                parent=todelete;
                todelete=todelete->right;
            }
            root->data=todelete->data;
            if(parent==root){
                root->left=todelete->left;
            }else{
            parent->right=todelete->left;
            }
        }
        delete todelete;
        }
          
    }

Please log in or register to answer this question.

Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and receive answers from other members of the community.
...