剑指offer--从尾到头打印链表
2017-10-16 11:44
387 查看
题目描述
输入一个链表,从尾到头打印链表每个节点的值。算法描述(非递归)
1.从头到尾遍历链表,将每个结点存入栈中2.遍历输出栈(由于剑指offer给的返回值为
vector<int>,所以遍历栈的时候将元素在存入vector中)
代码
vector<int> printListFromTailToHead(ListNode* head) { vector<int> v; if(head == NULL) return v; stack<int> s; while(head){ s.push(head->val); head=head->next; } while(!s.empty()){ v.push_back(s.top()); s.pop(); } return v; }
算法描述(递归)
1.采用递归的方式,首先递归到尾结点,然后将结点值存入vector2.利用递归退层回到上一个结点,再存入vector
3.注意vector要传引用,否则不同的函数栈帧中没有同一个vector
代码
void printListFromTailToHead(ListNode* head,vector<int>& v){ if(head == NULL) return ; printListFromTailToHead(head->next,v); v.push_back(head->val); } vector<int> printListFromTailToHead(ListNode* head) { vector<int> v; printListFromTailToHead(head,v); return v; }
相关文章推荐
- 剑指offer--(3) 从尾到头打印链表
- 剑指offer:从尾到头打印链表
- 剑指offer——从尾到头打印链表节点的值
- 剑指offer-05:从尾到头打印链表
- 剑指offer_05 从尾到头打印链表
- 剑指Offer - 九度1511 - 从尾到头打印链表
- 剑指offer[三]:从尾到头打印链表(java和c++版本)
- 剑指offer--从尾到头打印链表
- [剑指offer]从尾到头打印链表
- 剑指offer——面试题5:从尾到头打印链表
- 面试题五:从尾到头打印链表|剑指offer
- 剑指offer(java代码)——从尾到头打印链表
- 剑指offer:从尾到头打印链表
- 【剑指Offer面试题】 九度OJ1511:从尾到头打印链表
- 剑指offer3 从尾到头打印链表
- 剑指offer-5/题目1511:从尾到头打印链表
- 剑指Offer:从尾到头打印链表
- 【剑指offer】从尾到头打印链表
- 剑指offer-----从尾到头打印链表
- 剑指offer__02__输入一个链表,从尾到头打印链表每个节点的值。