合并两个排序的链表(剑指offer)
2015-09-07 16:58
246 查看
合并两个排序的链表
参与人数:1527时间限制:1秒空间限制:32768K
通过比例:27.96%
最佳记录:0 ms|8552K(来自 牛客708854号)
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
题目链接:http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337?rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
链表练习,定义一个指针p,从小到大一次往后添加,当其中一串链表为空的时候指向另一串链表,然后退出,返回该链表的头指针(我定义的链表有头指针,所以返回q->next就可以了。)
好久没碰指针和链表了,先从基础题刷起。(面试题也有很多链表的操作,包括程序改错也是有指针的)
持续更新中。
参与人数:1527时间限制:1秒空间限制:32768K
通过比例:27.96%
最佳记录:0 ms|8552K(来自 牛客708854号)
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。题目链接:http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337?rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
链表练习,定义一个指针p,从小到大一次往后添加,当其中一串链表为空的时候指向另一串链表,然后退出,返回该链表的头指针(我定义的链表有头指针,所以返回q->next就可以了。)
好久没碰指针和链表了,先从基础题刷起。(面试题也有很多链表的操作,包括程序改错也是有指针的)
持续更新中。
#include<stdio.h> #include<iostream> using namespace std; struct ListNode{ int val; struct ListNode *next; ListNode(int x):val(x),next(NULL){} }; class Solution { public: ListNode* Merge(ListNode* pHead1,ListNode* pHead2) { if(!pHead1) return pHead2; else if(!pHead2) return pHead1; ListNode *p,*q; p=new ListNode(NULL); q=p; while(pHead1||pHead2) { if(!pHead1&&pHead2) { p->next=pHead2; p=pHead2; break; } if(!pHead2&&pHead1) { p->next=pHead1; p=pHead1; break; } if(pHead1->val<pHead2->val) { p->next=pHead1; p=pHead1; pHead1=pHead1->next; } else { p->next=pHead2; p=pHead2; pHead2=pHead2->next; } } return q->next; } ListNode* CreatList(ListNode *pHead,int n) { if(n==0) return NULL; ListNode *p,*q; pHead=new ListNode(NULL); p=pHead; cin>>p->val; int x; while(--n) { cin>>x; q=new ListNode(x); p->next=q; p=q; } return pHead; } }; int main() { int n,m; Solution so; ListNode *L1,*L2; cin>>n; L1=so.CreatList(L1,n); cin>>m; L2=so.CreatList(L2,m); ListNode *ans=so.Merge(L1,L2); while(ans) { printf("%d\t",ans->val); ans=ans->next; } return 0; }
相关文章推荐
- JS 获取HTML之间的传输的参数的值.
- 开始学习使用ReactiveCocoa框架
- 不同css样式适应不同屏幕大小实现自适应宽度
- jquery实现Slide Out Navigation滑出式菜单效果代码
- html5 svn e.target cannot get correct value
- DIV+CSS样式
- 前端validate验证自定义remote
- js图片轮播特效代码分享
- 1.2 对话框设置(样式、大小位置、无边框可拖动)
- SharedPreferences存储和读取数据
- js 字符串日期 转成 Date
- CSS-3 RGBA的使用
- JSLint简介
- JavaScript学习笔记
- 如何在一个页面上让多个jQuery版本共存
- 购物车功能实现 语言: php+MySQL+jQuery+Ajax
- HTML图片拉伸
- hadoop中启动namenode等出现的一些问题
- mobile webiste 中的css的font-size em及line-height等换算
- [持续更新]CSS3学习笔记(二)渐变&圆角&阴影&变换&动画