ok.parent = look.child\rlook.child = look.child->right\r)\relse /* must be same if not to left or right *\rbreak /* look.child is address of node with item *\r)\rreturn look /* successful return *\r)\rstatic void DeleteNode(Node **ptr)\r/* ptr is address of parent member pointing to target node */\r(\rNode * temp\rif ( ( * p t r ) == NULL)\r(\rtemp = *ptr\r*ptr = (*ptr)->right\rfree(temp)\r)\relse if ( (*ptr)->right == NULL)\r(\rtemp = *ptr\r*ptr = (*ptr)->left\rfree(temp)\r)\relse /* deleted node has two children */\r/* find where to reattach right subtree */\rfor (temp = (*ptr)->left temp->right != NULL\rtemp = temp->right)\rcontinue\rtemp->right = (*ptr)->right\rtemp = *ptr\r*ptr =(*ptr)->left\rfree(temp)\r}\r)