Write a recursive function that inserts an element X before each element Y in a simply linked list of integers.


Difficulty level
This exercise is mostly suitable for students
void insert_before_recursive(node ** nodeRef, element tofind, element toinsert)
{
	if (*nodeRef != NULL)
	{
		if ((*nodeRef)->data == tofind)
		{
			Push(nodeRef, toinsert);
			insert_before_recursive(&((*nodeRef)->next->next), tofind, toinsert);
		}
	    else
		    insert_before_recursive(&((*nodeRef)->next), tofind, toinsert);
	}
}

Back to the list of exercises
Looking for a more challenging exercise, try this one !!
Graph Edge Property