您的位置:首页 > Web前端

剑指offer-3.从尾到头打印链表

2017-04-21 22:27 267 查看
题目:输入一个链表,从尾到头打印链表每个节点的值。

思路:定义一个栈作为中介,栈就是用来反转节点的,因为栈的特点是先进后出,先进的节点会留在栈底,后进的节点会留在栈顶;最后进行出栈,得到的就是反转的节点,把节点值保存在容器中;




/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head)
{
stack<ListNode*>m;           //栈就是用来反转节点的,因为栈的特点是先进后出,先进的节点会留在栈底,后进的节点会留在栈顶
ListNode* temp = head;
vector<int>result;
while (temp != NULL)
{
m.push(temp);
temp = temp->next;
}
while (!m.empty())
{
temp = m.top();
result.push_back(temp->val);
m.pop();
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: