从尾到头打印链表

题目描述

输入一个链表,从尾到头打印链表每个节点的值。


首先,我们知道的是链表的表头,要从头到尾打印链表的节点值,而栈是后进先出的,自然而然想到读到链表的节点值时入栈,知道到达链表的表尾,依次出栈,就得到了链表的从尾到头的节点值。

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        vector<int> v;
        stack<int> s;
        ListNode* p=head;
        
        int n=0;
        while(p)
        {
            s.push(p->val);
            p=p->next;
            n++;
        }
        int i;
        for(i=0;i<n;i++)
        {
            v.push_back(s.top());
            s.pop();
        }
        return v;
    }
};

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

从尾到头打印链表

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭