-1
如何刪除單鏈表中的最後一個節點?它不與頭就像我可能只是寫:單鏈表刪除最後一個節點
void DeleteNode (node *& head, node *& tail, int val)
{
node * p = nullptr;
node * tmp = nullptr;
if (val == head -> data)
{
delete head;
head = head -> next;
}
...
我可以刪除最後一個節點,這樣的:
if (val == tail -> data)
{
delete tail;
}
但後來我怎麼可以設置尾部到前一個節點(在雙鏈表,我可以只寫tail = tail - > prev切換到前一個節點)。
我想類似的東西:
tail = head;
while (tail != nullptr)
{
tail = tail -> next
}
但它不應該工作,因爲這是我刪除的最後尾節點仍然某處內存和以前的節點仍然指向有那麼它不指向NULL它不會停在那裏。
目錄結構:
struct node
{
int data;
node * next;
node() : next (nullptr) { }
};
爲何會出現目前如此多的鏈表的問題?它是大學聯結名單的教學時間嗎? – Matt