题目描述
输入一个链表,从尾到头打印链表每个节点的值。
解题思路:将链表的节点存在一个stack中,依次出栈即可
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
vector<int> vec;
stack<ListNode*> node;
ListNode* pNode = head;
while (pNode != nullptr)
{
node.push(pNode);
pNode = pNode->next;
}
while(!node.empty())
{
pNode = node.top();
vec.push_back(pNode->val);
node.pop();
}
return vec ;
}
};
注意stack的几个操作函数
stack.push(pNode) 入栈操作
stack.pop() 出栈操作
stack.top() 取栈顶元素
第二种方法可以用递归即可,当没有第一种好。(链表太长可能导致调用栈溢出)