本文共 1173 字,大约阅读时间需要 3 分钟。
题目描述
输入一个链表,从尾到头打印链表每个节点的值。思路:判断当前head是否为NULL,如果不是,把head->val放到a的末尾;如果是,跳出循环。 再将a逆序放到b里。(注:代码2中,反转vector用STL中的reverse实现,刚开始不知道这个。。。。)
代码实现1:
/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class Solution {public: vector printListFromTailToHead(ListNode* head) { vector a,b; while (head!= NULL){ a.push_back(head->val); head = head->next; } for (vector ::reverse_iterator iter = a.rbegin(); iter != a.rend(); iter++){ b.push_back(*iter); } return b; }};
运行时间: <1 ms 占用内存:8568K 状态:答案正确
代码实现2:
/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class Solution {public: vector printListFromTailToHead(ListNode* head) { vector a; while (head!= NULL){ a.push_back(head->val); head = head->next; } reverse(a.begin(),a.end()); return a; }};
运行时间: <1 ms 占用内存:8552K 状态:答案正确
转载地址:http://bimii.baihongyu.com/