天天看點

劍指offer_從頭到尾列印連結清單題目要求代碼思路

題目要求

時間限制:1秒 空間限制:32768K

本題知識點: 連結清單

題目描述

輸入一個連結清單,按連結清單值從尾到頭的順序傳回一個ArrayList。

代碼思路

利用兩個指針pre,next始終指向head的前、後。

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        ListNode* pre=NULL;
        ListNode* next=NULL;
        vector<int> v;
        if(head==NULL)return v;
        next=head->next;
        while(next!=NULL){
            head->next=pre;
            pre=head;
            head=next;
            next=head->next;
        }
        head->next=pre;
        
        //print
        pre=head;
        while(pre!=NULL){
            v.push_back(pre->val);
            pre=pre->next;
        }
        return v;
    }
};
           

繼續閱讀