struct tree_node { string data; tree_node *left = 0, *right = 0; }; tree_node* find_parent(string child_data, tree_node *root){ if(!root) return 0; if(root->data == child_data) return 0; if(child_data > root->data){ if(root->right->data == child_data) return root; return find_parent(child_data, root->right); } if(root->left->data == child_data) return root; return find_parent(child_data, root->left); }