【剑指offer-解题系列(16)】合并两个排序的列表
来源:互联网 发布:java简历项目收获 编辑:程序博客网 时间:2024/06/07 19:17
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
分析
纯手动工程实现问题,原理上没有什么复杂的。
代码实现
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
if(pHead1==NULL )
return pHead2;
if(pHead2==NULL )
return pHead1;
ListNode*p =pHead1;
ListNode*q =pHead2;
if(pHead1->val > pHead2->val){
swap(p,q);
}
ListNode*h =p;
while(q!=NULL){
while(p->next!=NULL && p->next->val<q->val ){
p=p->next;
//insert after p
}
//insert
ListNode*tmp = p->next ;
p->next = q;
q=q->next;
p->next->next = tmp;
{
if(pHead1==NULL )
return pHead2;
if(pHead2==NULL )
return pHead1;
ListNode*p =pHead1;
ListNode*q =pHead2;
if(pHead1->val > pHead2->val){
swap(p,q);
}
ListNode*h =p;
while(q!=NULL){
while(p->next!=NULL && p->next->val<q->val ){
p=p->next;
//insert after p
}
//insert
ListNode*tmp = p->next ;
p->next = q;
q=q->next;
p->next->next = tmp;
}
return h;
}
return h;
}
阅读全文
0 0
- 【剑指offer-解题系列(16)】合并两个排序的列表
- 剑指offer系列源码-合并两个排序的链表
- 剑指Offer系列---(19)合并两个排序的链表
- 【剑指offer系列】 合并两个排序的链表___17
- 剑指offer系列-T17合并两个排序的链表
- 剑指offer 16 合并两个排序的链表
- 剑指Offer(16)______合并两个排序的链表
- 剑指offer(16)—合并两个排序的链表
- 剑指offer(18):合并两个排序的链表
- 剑指offer(13)-合并两个排序的链表
- 剑指offer:合并两个排序的链表(java)
- 剑指offer(十六)合并两个排序的链表
- 剑指offer系列之十五:合并两个排序的链表
- 剑指Offer系列-面试题17:合并两个排序的链表
- 合并两个排序的列表
- 剑指Offer——(16)合并两个排序的链表
- 剑指offer第16题(合并两个排序的链表)
- 剑指Offer之合并两个排序的链表
- bsd安装vim并且编写编译C++程序
- CI环境搭建----搭建repo服务器中遇到的问题1:fatal: branch 'stable' has not been signed
- htttp状态总结
- ubuntu关闭和开启防火墙
- 数组元素升序排列
- 【剑指offer-解题系列(16)】合并两个排序的列表
- 笔记01句子的形成
- 事物的四个特征ACID
- Windows系统下搭建Redis
- 2017艾瑞年度高峰会议即将于6月召开!
- Android主进程判断
- Spark基础与Java Api介绍
- Android系统介绍与框架
- 应用内购买最佳做法