剑指offer——替换空格从尾到头打印链表
Posted orenn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer——替换空格从尾到头打印链表相关的知识,希望对你有一定的参考价值。
题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
方法一:使用vector的insert函数可以在任意位置插入的特性。
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> result; while(head != NULL) { result.insert(result.begin(),head->val); head = head->next; } return result; } };
方法二:使用堆
class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { vector <int> result; stack<int> arr; ListNode* p=head; while(p!=NULL) { arr.push(p->val); p=p->next; } int len=arr.size(); for(int i=0;i<len;i++) { result.push_back(arr.top()); arr.pop(); } return result; } };
方法三:两个vector,倒着取元素
class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> array; vector<int> array2; ListNode* p; p=head; while(p!=NULL) { array.push_back(p->val); p=p->next; } for(int i=0;i<array.size();i++) { array2.push_back(array[array.size()-i-1]); } return array2; } };
以上是关于剑指offer——替换空格从尾到头打印链表的主要内容,如果未能解决你的问题,请参考以下文章