我有一个链表(实际是堆栈,但使用LL实现),我无法到达最后一个节点。我不知道我做错了什么,我搜遍了StackOverflow,但他们写了与我相同的代码。
我有头节点。
struct stack{
int no;
stack *link;
};
stack *top1 = null;
int main(){
while(top1->next!=NULL){
cout << top1->no << endl;
top1=top1->link;
}
}
// I didn't add the rest of the code, because it's a part of my homework, and our teachers search the internet
这是有道理的,我遍历我的堆栈,但最后一个节点有一个*链接指针为NULL,所以这个循环停在那里,并没有做任何关于最后一个节点。
我该如何解决这个问题?令人惊讶的是,我无法使用do-while循环来访问元素。
BTW我有10个元素在堆栈中,我可以通过这个循环显示它们,并为最后一个节点添加额外的cout: cout&lt;&lt; top1-&GT;无;
我对元素没有任何问题,但我遇到了遍历问题。
感谢。
答案 0 :(得分:0)
成功
while(top1!= NULL)
由于您当前的检查,您错过了最后一个条目,只需在最后一个之前停止该元素。 你几乎想检查你是否到达了NULLpointer。如果没有,你'最终'属于你的一个适当的元素(或完全错误,如果你之前搞砸了)。