剑指Offer(3)______从尾到头打印链表

来源:互联网 发布:圣元 国际财报数据 编辑:程序博客网 时间:2024/06/10 01:49

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


栈方式:

class Solution {public:     vector<int> printListFromTailToHead(ListNode* head) {                 vector<int> ans;        if(head == NULL) return ans;//鲁棒性 : 判断链表是否为空                 //使用栈存储        stack<int> stk;        while(head != NULL){            stk.push(head->val);            head = head->next;        }                 while(stk.size()){            ans.push_back(stk.top());            stk.pop();        }        return ans;    }};


递归方式:

class Solution {public:    void solve(vector<int>& ans,ListNode* p)    {        if(p == NULL) return;        int data = p->val;        solve(ans,p->next);        ans.push_back(data);    }         vector<int> printListFromTailToHead(ListNode* head) {                 vector<int> ans;        if(head == NULL) return ans;//鲁棒性 : 判断链表是否为空                 //使用递归存储.        solve(ans,head);        return ans;    }};




0 0
原创粉丝点击