亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

【劍指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

平舆县| 北安市| 友谊县| 方山县| 迭部县| 平潭县| 无极县| 丹江口市| 镇巴县| 天津市| 梅河口市| 汉川市| 涪陵区| 玉门市| 贺州市| 太康县| 晋州市| 鹤庆县| 黄浦区| 西青区| 万源市| 女性| 万安县| 宝应县| 连平县| 珲春市| 阳泉市| 武宁县| 永德县| 容城县| 江城| 临泉县| 南昌市| 河池市| 林芝县| 会东县| 景洪市| 罗山县| 乐安县| 绥化市| 化德县|