链表2018-10-20

输入一个链表,按链表值从尾到头的顺序返回一个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创建一个数组。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容