输入一个链表,从尾到头打印链表每个节点的值。
void listReverse(std::list<int> &mylist)
{
std::stack<int> mystack;
if(mylist.empty()) //判断list是否为空,如果没有判断即便链表为空后面仍会执行一遍cout
return;
std::list<int>::iterator it = mylist.begin();
while(it != mylist.end())
{
mystack.push(*it);
it++;
}
while(!mystack.empty())
{
std::cout<<mystack.top() << std::endl;
mystack.pop();
}
}
int main()
{
std::list<int> mylist;
for(int i=0; i < 5; i++)
mylist.push_back(i);
std::list<int>::iterator it = mylist.begin();
//逆序输出
std::cout<<"逆序输出" <<std::endl;
listReverse(mylist);
//顺序输出
std::cout<<"顺序输出" <<std::endl;
for(it = mylist.begin(); it != mylist.end(); it++){
std::cout<<*it<<std::endl;
}
return 0;
}