91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【劍指Offer第三題】從尾到頭打印鏈表

發布時間:2020-07-26 21:58:11 來源:網絡 閱讀:126 作者:Yuanmes 欄目:編程語言

題目描述
輸入一個鏈表,按鏈表從尾到頭的順序返回一個ArrayList。

注:設鏈表長度為n。語言:C++


鏈表結點數據結構規定如下:

*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };

解法1:正向遍歷,借助反向迭代器實現序列逆置(C++特性)。

vector<int> printListFromTailToHead(ListNode* head) {
        ListNode *p;
        p = head;
        vector<int> array;
        while(p != NULL)
        {
            array.push_back(p->val);
            p = p->next;
        }
        return vector<int>(array.rbegin(), array.rend());
    }

時間復雜度:O(n),空間復雜度:O(1)


解法2:借助棧先進后出的特性,將鏈表結點先入棧后出棧,再壓入序列中。

vector<int> printListFromTailToHead(ListNode* head) {
        ListNode *p;
        p = head;
        stack<int> s;
        while(p != NULL)
        {
            s.push(p->val);
            p = p->next;
        }
        p = head;
        vector<int> array;
        while(p != NULL)
        {
            array.push_back(s.top());
            s.pop();
            p = p->next;
        }
        return array;
    }

時間復雜度:O(n),空間復雜度:O(n)


解法3:遞歸

    vector<int> array;
    vector<int> printListFromTailToHead(ListNode* head) {
        ListNode *p;
        p = head;
        if(head != NULL)
        {
            if(head->next != NULL)
                printListFromTailToHead(head->next);
            array.push_back(head->val);
        }
        return array;
    }

時間復雜度:O(n),空間復雜度:O(n)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大荔县| 广宗县| 临泽县| 偏关县| 德化县| 林甸县| 山东| 罗田县| 万安县| 新巴尔虎右旗| 府谷县| 上高县| 岐山县| 霍林郭勒市| 扎囊县| 北川| 寿阳县| 罗源县| 金川县| 星座| 象山县| 自治县| 长武县| 疏勒县| 澎湖县| 罗城| 屏东县| 阆中市| 新龙县| 光山县| 新干县| 伊春市| 宣威市| 平江县| 丰镇市| 保山市| 桐城市| 陵水| 永康市| 香格里拉县| 旺苍县|