【发布时间】:2015-10-14 23:24:15
【问题描述】:
希望到目前为止您度过了愉快的一天/一夜,我正在尝试使用链表实现堆栈,并且我几乎知道如何在列表末尾插入一个项目。我正在尝试删除列表末尾的一个节点,但我无法正确执行。
void Pop(){
Node* temp1 = head;
Node* temp2 = NULL;
while(temp1 != NULL){
temp2 = temp1;
temp1 = temp1->next;
}
delete temp1;
temp2->next = NULL;
}
这是我删除列表末尾节点的代码。我玩了很多,但这并没有使程序停止执行或无限打印数字。
所以我“推送”了 3 个数字,并在每次“推送”和“弹出”之间打印了两次,并在两者之间打印了结果。但是输出是这样的:
1
1 2
1 2 3
1 2 3
1 2 3
我想要发生的事情是这样的:
1
1 2
1 2 3
1 2
1
提前致谢!:D
【问题讨论】:
-
在调试器中运行它,并在
delete temp1之前设置一个断点;检查temp1是什么。 -
在发布此问题之前,您可以使用调试器检查 temp1 指向的内容。
标签: c++ linked-list stack