zoukankan      html  css  js  c++  java
  • 【剑指Offer】面试题06.从尾到头打印链表

    题目

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

    示例 1:

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

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

    思路一:反转数组

    代码

    时间复杂度:O(n)
    空间复杂度:O(1)

    class Solution {
    public:
        vector<int> reversePrint(ListNode* head) {
            vector<int> res;
            if (!head) return res;
            while (head != nullptr) {
                res.push_back(head->val);
                head = head->next;
            }
            reverse(res.begin(), res.end());
            return res;
        }
    };
    

    思路二:栈

    代码

    时间复杂度:O(n)
    空间复杂度:O(n)

    class Solution {
    public:
        vector<int> reversePrint(ListNode* head) {
            vector<int> res;
            if (!head) return res;
            stack<int> st;
            while (head != nullptr) {
                st.push(head->val);
                head = head->next;
            }
            while (!st.empty()) {
                res.push_back(st.top());
                st.pop();
            }        
            return res;
        }
    };
    
  • 相关阅读:
    L208
    L207
    L206
    L205 EE
    L204
    监控glusterfs
    监控elssticSearch健康状态
    防火墙
    创建逻辑卷
    编译安装nginx,并使用systemd管理nginx
  • 原文地址:https://www.cnblogs.com/galaxy-hao/p/12304405.html
Copyright © 2011-2022 走看看