输入一个链表,从尾到头打印链表每个节点的值。
思路:由于单链表是没有办法获取到其前面一个节点的,除非用额外空间来保存节点,此题从尾到头打印,使用栈结构,先遍历单链表,把节点值存入栈中,然后再利用栈的先进后出特性依次弹出栈顶值即可
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
stack<ListNode*> nodes;
vector<int> vec;
ListNode* pNode=head;
while(pNode!=NULL)
{
nodes.push(pNode);
pNode=pNode->next;
}
while(!nodes.empty())
{
pNode=nodes.top();
vec.push_back(pNode->val);
nodes.pop();
}
return vec;
}
};