从尾到头打印链表(含翻转链表两种方法)
来源:互联网 发布:淘宝网成唯识论直解 编辑:程序博客网 时间:2024/06/09 15:23
/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class Solution {public: vector<int> a; //方法一:递归(自底向上) vector<int> printListFromTailToHead1(ListNode* head) { if(head!=NULL) { printListFromTailToHead(head->next); a.push_back(head->val); } return a; } //方法二:栈 vector<int> printListFromTailToHead2(ListNode* head) { vector<int>v; stack<int>s; while(head) { s.push(head->val); head=head->next; } while(s.size()) { v.push_back(s.top()); s.pop(); } return v; } //方法三:逆序 vector<int> printListFromTailToHead3(ListNode* head) { vector<int>v; while(head) { v.push_back(head->val); head=head->next; } reverse(v.begin(),v.end()); return v; } //方法四:翻转链表1 vector<int> printListFromTailToHead4(ListNode* head) { vector<int>v; ListNode* p=head; ListNode* pre=NULL; while(p) { ListNode* pnext=p->next; p->next=pre; pre=p; p=pnext; } while(pre) { v.push_back(pre->val); pre=pre->next; } return v; } //方法五:翻转链表2 vector<int> printListFromTailToHead(ListNode* head) { vector<int>v; ListNode* ahead=new ListNode(-1); ahead->next=head; ListNode*p=NULL; if(head==NULL)return v; while(head->next) { p=head->next; head->next=p->next; p->next=ahead->next; ahead->next=p; } head=ahead->next; while(head) { v.push_back(head->val); head=head->next; } return v; }};
阅读全文
0 0
- 从尾到头打印链表(含翻转链表两种方法)
- 从尾到头打印链表(五种方法包括链表翻转、递归、栈、容器逆序)
- 剑指offer面试42翻转单词顺序和面试5从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 1、从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 【20】从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- Offer5 从尾到头打印链表
- linux系统jconsole的使用和windows远程查看
- 苹果核
- Python爬虫之正则 & BeautifulSoup4解析HTML
- Guice依赖注入(@Inject)
- try..catch
- 从尾到头打印链表(含翻转链表两种方法)
- MYSQL数据库(四) 数据插入、空值和非空判断、自动排序、主键约束、唯一约束
- OpenGL基本操作与SOIL库和assimp库的使用
- exec()方法
- qt串口通信学习笔记
- 【错误】java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
- ASP.NET WebAPI 实战问题总结(一)
- 网络编程中Nagle算法和Delayed ACK的测试
- 解决:Gradle project refresh failed Failed to open zip file 方法