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

时间:2015-03-06 20:32:15

标签: c++ linked-list

我有一些非常规的编码链表,我试图删除它的头部。

这是一个哈希表,所以它是一个链表数组

myStruct *pointer = HashTable[i];

1→2→3→NULL

如何删除1并使2成为列表的头部? 我已尝试过指针=指针 - >然后当我重新显示表格时,它仍然是打印1-> 2-> 3-> NULL,而不是2-> 3-> NULL

2 个答案:

答案 0 :(得分:8)

我会推荐我为你制作的图像。我认为这比说:

更安全
node *temp = head

head =head->next 

delete temp

因为根据您处理指针的方式,您可能会冒着删除整个列表的风险。这样做,你将失去头脑,并确保你拥有列表的其余部分。但做你喜欢的!男人 - 尝试一下。 enter image description here

答案 1 :(得分:0)

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