我无法访问链接列表中的最后一个节点

时间:2014-11-30 22:47:17

标签: c++ linked-list stack

我有一个链表(实际是堆栈,但使用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;无;

我对元素没有任何问题,但我遇到了遍历问题。

感谢。

1 个答案:

答案 0 :(得分:0)

成功

while(top1!= NULL)

由于您当前的检查,您错过了最后一个条目,只需在最后一个之前停止该元素。 你几乎想检查你是否到达了NULLpointer。如果没有,你'最终'属于你的一个适当的元素(或完全错误,如果你之前搞砸了)。