gpt4 book ai didi

c++ - 从链表的开头删除节点

转载 作者:行者123 更新时间:2023-11-30 01:47:52 24 4
gpt4 key购买 nike

我正在使用单向链表实现堆栈,其中 Head 位于堆栈顶部,Tail 位于堆栈底部。

我正在执行弹出操作。为此,我必须使头部等于链表中的第二个节点。但是在我这样做之前,我需要先删除链表中的第一个节点。我可以使用 delete head->next; 来做到这一点。

我的问题是,如果我删除了第一个节点,我还能用它移动到下一个节点吗?或者使用已调用 delete 的节点的引用是不好的做法。这是我想用来实现 pop 的代码。

delete head->next;
head->next = head->next->next;

最佳答案

如果你这样做:

删除head->next;

那么head->next是无效的。如果您尝试在下一行取消引用它(请记住右侧将在赋值之前计算),您的程序将会崩溃。

head->next = head->next->!next;//错误指针的取消引用发生在我放置 ! 的位置,而你在那里崩溃了。

如果你想删除 head->next 处的对象,你需要先将其保存。

p = head->next;
head->next = head->next->next;
delete p;

关于c++ - 从链表的开头删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31096830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com