标签:
题目描述
输入一个链表,从尾到头打印链表每个节点的值。返回新链表的头结点。
用栈保存结点指针,先进后出,依次输出出栈的各节点的值。
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int> printListFromTailToHead(struct ListNode* head) {
struct ListNode * temp = head;
stack<ListNode*> nodes;
vector<int> values;
while (temp != NULL)
{
nodes.push(temp);
temp = temp->next;
}
head = nodes.top();
while(!nodes.empty())
{
values.push_back(nodes.top()->val);
nodes.pop();
}
return values;
}
};
标签:
原文地址:http://blog.csdn.net/foreverling/article/details/45315401