###Bug: can't delete head node###
Your delete_node()
function doesn't work if the node you want to delete is the head of the list. In fact, the function signature can't work:
void deleteNode(node_t *node, node_t *head);
Since the head pointer can change if you delete it, your signature has to be one of these two instead;
void deleteNode(node_t *node, node_t **head);
node_t deleteNode*deleteNode(node_t *node, node_t *head);
###Insert should be renamed###
Since your "insert" function adds to the end of the list, I think it should be called append()
instead.