劍指Offer面試題24 反轉連結串列
阿新 • • 發佈:2019-01-05
輸入一個連結串列,按連結串列值從尾到頭的順序返回一個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; } };
注意: 對於反轉連結串列,我更建議用三個指標將連結串列真正反轉,並將連結串列指標指向反轉後的頭結點。上面的程式碼只是用於列印而已。並沒有真的去反轉。