链表2018-10-20

作者: 雪上霜 | 来源:发表于2018-10-19 21:25 被阅读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创建一个数组。

    相关文章

      网友评论

        本文标题:链表2018-10-20

        本文链接:https://www.haomeiwen.com/subject/awtvzftx.html