剑指 Offer 06 从尾到头打印链表(简单)

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

示例 1:
输入:head = [1,3,2]
输出:[2,3,1]

限制:
0 <= 链表长度 <= 10000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


自己的解法1:用栈的LIFO特性

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    vector reversePrint(ListNode* head) {
        stack s;
        vector res;
        ListNode* p = head;
        while(p)
        {
            s.push(p->val);
            p = p->next;
        }
        while(s.size())
        {
            res.push_back(s.top());
            s.pop();
        }
        return res;
    }
};

优点:思路容易想到
缺点:。。。


自己的解法2:

你可能感兴趣的:(剑指 Offer 06 从尾到头打印链表(简单))