删除链表的头节点? C++

Removing the head node of my linked list? C++

我有这个编码有点不合常规的链表,我正试图删除它的头部。

这是一个散列table,所以它是一个链表数组

myStruct *pointer = HashTable[i];

1->2->3->NULL

如何删除 1 并使 2 成为列表的头部? 我试过 pointer = pointer->next 但是当我重新显示 table 时,它仍然打印 1->2->3->NULL,而不是 2->3->NULL.

void changethehead(node*&head) {
    node *tobedeleted = head;
    head = head->next;   // head is the next element
    delete tobedeleted; // delete the old head
}

我会推荐我为您制作的图像。我认为这比说这样的话更安全:

node *temp = head

head =head->next 

delete temp

因为根据您处理指针的方式,您可能 运行 有删除整个列表的风险。这样做,你会失去头脑并确保你拥有列表的其余部分。但是做你喜欢的事!伙计-尝试一下。