首页 > 技术文章 > 从尾到头打印链表

czy4869 2018-05-15 23:59 原文

输入一个链表,从尾到头打印每个节点的值。

由于遍历链表的顺序是从头到尾,但是打印的顺序确是从尾到头,也就是第一个遍历的节点最后一个输出,最后一个遍历的节点第一个输出,
很明显这是一种先进后出,则可以用栈来实现这种顺序,当我们从头到尾遍历节点的时候,每经过一个节点都将它放入栈中,当遍历完整个
链表后,从栈顶开始逐个输出节点的值,此时输出的顺序就是从尾到头。
vector<int> printlist(ListNode *head) { stack<ListNode*> nodes; ListNode* pnode=head; vector<int> vec; while(pnode) { nodes.push(pnode); pnode=pnode->next; } while(!nodes.empty()) { pnode=nodes.top(); vec.push_back(pnode->val); nodes.pop(); } return vec; }

 

 

推荐阅读