知识总结

链表2018-10-20

2018-10-19  本文已影响0人  雪上霜

输入一个链表,按链表值从尾到头的顺序返回一个ArrayList.

/**

*  struct ListNode {

*        int val;

*        struct ListNode *next;

*        ListNode(int x) :

*              val(x), next(NULL) {

*        }

*  };

*/

class Solution {

public:

    vector<int> printListFromTailToHead(ListNode* head) {

        std::stack<int> st;

        vector<int> ArrayList;

        while(head != NULL)

        {

            st.push(head->val);

            head = head->next;

        }

        while(!st.empty())

        {

            ArrayList.push_back(st.top());

            st.pop();

        }       

        return ArrayList;

    }

};

一开始没有使用栈,以为push_back可以翻转,其实它是把每个元素放到后面,同时,打印这个数组时还是从前往后打印,所以没有翻转;使用while循环,当时以为使用if就可以判断完了,没有想到循环。值得思考,

学会了栈创建一个数组,vector创建一个数组。

上一篇下一篇

猜你喜欢

热点阅读