#include using namespace std; class node{ public: int data; node *next; void print(); int find(int); // returns 0 if not found else 1 void deletell(int); }; void node::deletell(int d){ if(next == NULL) return; if(next->data == d){ node *temp; temp = next; // point to the node to be removed next = next->next; // skip over the next node delete temp; } else { next->deletell(d); } } void node::print(){ cout << "On the way in: "<< data << endl; if(next != NULL){ next -> print(); } // cout << "On the way out: " << data << endl; } int node::find(int d){ //cout << "Searching: " << data << endl; if(data == d){ return 1; // found it! } if(next == NULL){ return 0; // reached the end of the list without finding it } int answer; answer = next ->find(d); //cout << "Done searching: " << data << " "; //cout << answer << endl; return(answer); // return what my neightbor found } node * deletell(node *,int); int main(){ node *head; // points to a node object head = NULL; node *temp; int len; cout << "How many numbers? "; cin >> len; for(int i = len; i > 0; i--){ temp = new node; temp -> data = i; temp -> next = NULL; temp -> next = head; head = temp; } head->print(); int d; cout << "What should we delete?"; cin >> d; head = deletell(head, d); head->print(); } node * deletell(node *h, int x){ if(h -> data == x){ node *temp; temp = h; h = h -> next; delete temp; } else { h -> deletell(x); } return h; }