Are you sure you are extracting the tail? tail = list->link would not work since list->link = NULL. In this case list and head references the same memory address, so you are effectively assigning...