• 链表反向vector输出
  • 思路: 将链表的数据存储于vector,再对vector进行反向排序
#include "createLinkedList.h"
#include <iostream>
#include <vector>  
#include <algorithm>

class OutputReverseVectorClass {
public:
    std::vector<int> OutputReverseVector(ListNode *pHead);
};

/*
* 链表反向vector输出
* 思路: 将链表的数据存储于vector,再对vector进行反向排序
*/
std::vector<int> OutputReverseVectorClass::OutputReverseVector(ListNode *pHead)
{
    std::vector<int> reverseVec;
    if (pHead == nullptr) {
        return reverseVec;
    }

    while (pHead != nullptr) {
        reverseVec.push_back(pHead->data);
        pHead = pHead->next;
    }
    reverse(reverseVec.begin(), reverseVec.end());
    return reverseVec;
}

int main()
{
    CreateNodeClass createNodeClass;
    ListNode *createListHeadNode = createNodeClass.CreateList();
    createNodeClass.ShowList(createListHeadNode);

    OutputReverseVectorClass outputReverseVectorClass;
    std::vector<int> reverseVec = outputReverseVectorClass.OutputReverseVector(createListHeadNode);
    for(auto iter : reverseVec) {
        std::cout<<" "<<iter;
    }
    std::cout<<std::endl;
    return 1;

}