我有一些非常规的编码链表,我试图删除它的头部。
这是一个哈希表,所以它是一个链表数组
myStruct *pointer = HashTable[i];
1→2→3→NULL
如何删除1并使2成为列表的头部? 我已尝试过指针=指针 - >然后当我重新显示表格时,它仍然是打印1-> 2-> 3-> NULL,而不是2-> 3-> NULL
答案 0 :(得分:8)
我会推荐我为你制作的图像。我认为这比说:
更安全node *temp = head
head =head->next
delete temp
因为根据您处理指针的方式,您可能会冒着删除整个列表的风险。这样做,你将失去头脑,并确保你拥有列表的其余部分。但做你喜欢的!男人 - 尝试一下。
答案 1 :(得分:0)
void changethehead(node*&head) {
node *tobedeleted = head;
head = head->next; // head is the next element
delete tobedeleted; // delete the old head
}