剑指offer面试题4-从尾到头打印链表

题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

解法一:时间复杂度O(n),空间复杂度O(n)

class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        /*思路:遍历结点将结点值放入栈中,再将栈中的数据一次弹出放入vector容器*/
        
        vector<int> ret;
        //验证输入
        if (head == nullptr)
            return ret;
        
        //遍历链表并将结点值放入栈中
        ListNode *pWorkNode = head;
        stack<int> temp;
        while (pWorkNode != nullptr) {
            temp.push(pWorkNode->val);
            pWorkNode = pWorkNode->next;
        }
        
        //将栈中数据依次弹出并放入vector容器中
        int value;
        while (!temp.empty()) {
            value = temp.top();
            temp.pop();
            ret.push_back(value);
        }
        return ret;
    }
};

猜你喜欢

转载自www.cnblogs.com/zpchya/p/11123429.html
今日推荐