题目:输入一个链表,从尾到头打印链表每个节点的值。
分析:由于是从尾到头这种的打印方式,所以我首先想到的是用栈这种先近后出的结构存储遍历结果
思路:对链表进行遍历,每次遍历结果存入栈中
C++代码:
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int> printListFromTailToHead(struct ListNode* head) {
vector<int> v;
std::stack<ListNode*> nodes;
ListNode *pNode = head;
while(pNode!=NULL){
nodes.push(pNode);
pNode = pNode->next;
}
while(!nodes.empty()){
pNode = nodes.top();
v.push_back(pNode->val);
nodes.pop();
}
return v;
}
};