Here the LinkedList list has two pointers named head and tail, the data type of these pointers is node. Whenever we add any node in the end of list then we have updating the tail pointer that always keeping the record of last node. We are saving the time from iterating over the list to reach the last node. To insert the node we are just updating the next of tail to the new node ( list->tail->next = newNode ) and now the tail is becoming the newNode that is inserted ( list->tail = newNode).