###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(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.