Глупый вопрос от новичка:
Есть кусок код на С++, который описывает вставкунового элемента в голову списка :
void LinkedList::headInsert(int val)
{
/* The list is empty? */
if (_pHead == NULL) {
/* the same to create a new list with a given value */
_pTail = _pHead = new Node(val);
}
else
{
/* Create a new node and insert it before the head node */
Node *node = new Node(val);
node->_pNext = _pHead;
/* Update the head node */
_pHead = node;
}
}
Неясно что происходит в конце
/* Update the head node */
_pHead = node;
до этой строчки node указывает на голову, и головой списка считается изначальная голова списка. А потом как? Мы обращаемся к исходной голове списка и присваиваем ей node. Выходит, что за node следует node (два одинаковых элемента). Что я неправильно понимаю?