1. 程式人生 > >劍指Offer面試題24 反轉連結串列

劍指Offer面試題24 反轉連結串列

輸入一個連結串列,按連結串列值從尾到頭的順序返回一個ArrayList。

牛客網提交程式碼:

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        vector<int> vec;
        ListNode *temp = head;
        while(temp != nullptr){
            vec.push_back(temp->val);
            temp = temp->next;
        }
        for(int i=0;i<vec.size()/2;i++)
        {
            int a = vec[i];
            vec[i] = vec[vec.size()-1-i];
            vec[vec.size()-1-i] = a;
        }
        return vec;
    }
};

注意: 對於反轉連結串列,我更建議用三個指標將連結串列真正反轉,並將連結串列指標指向反轉後的頭結點。上面的程式碼只是用於列印而已。並沒有真的去反轉。