问题:输入一个链表,从尾到头打印链表的每个节点的值。
思路:借助辅助栈stack,或使用递归。
具体代码:(C++)
struct ListNode{
int val;
struct ListNode *next;
ListNode(int x):val(x),next(NULL){}
};
class Solution
{
public:
vector<int> printListFromTailToHead(ListNode* head)
{
vector<int> reverse_list;
stack<int> nodes;
if(head == nullptr)
return reverse_list;
ListNode* pNode = head;
while(pNode != nullptr)
{
nodes.push(pNode->val);
pNode = pNode->next;
}
int tempVal;
while(!nodes.empty())
{
tempVal = nodes.top();
reverse_list.push_back(tempVal);
nodes.pop();
}
return reverse_list;
}
};