剑指Offer(牛客版)--面试题6:从尾到头打印链表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41923658/article/details/89966811

题目:输入一个链表的头结点,从尾到头打印这个链表中结点的值。

完整代码:

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        //创建一个存放结点的工具栈
        stack<ListNode*>nodes;
        //创建一个结点指针pNode
        ListNode* pNode=head;
        //定义一个容器
        vector<int>temp;
        /*******将链表结点压入堆栈********/
        //当结点指针不为空
        while(pNode!=nullptr)
        {
            //结点入栈
            nodes.push(pNode);
            //结点指针往后走
            pNode=pNode->next;
        }
        
        /********结点逆序出栈*********/
        //当栈不为空的时候
        while(!nodes.empty())
        {
            //获取栈顶元素
            pNode=nodes.top();
            //将栈顶元素的数值放入容器中
            temp.push_back(pNode->val);
            //弹出栈顶元素
            nodes.pop();
        }
        //返回容器
        return temp;
    }
};

微信公众号:

猜你喜欢

转载自blog.csdn.net/weixin_41923658/article/details/89966811