剑指offer:合并两个排序的链表
来源:互联网 发布:微软sql 编辑:程序博客网 时间:2024/06/04 18:32
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
(这题也可以用递归来做)
/*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 == NULL) return pHead2; else if(pHead2 == NULL) return pHead1; ListNode* pHead; if(pHead1->val <= pHead2->val) { pHead = pHead1; pHead1 = pHead1->next; } else { pHead = pHead2; pHead2 = pHead2->next; } ListNode* pout = pHead; while(pHead1 != NULL && pHead2 != NULL) { while(pHead1 != NULL && (pHead1->val <= pHead2->val)) { pHead->next = pHead1; pHead1 = pHead1->next; pHead = pHead -> next; } while(pHead2 != NULL && pHead1 != NULL && (pHead1->val > pHead2->val)) { pHead->next = pHead2; pHead2 = pHead2->next; pHead = pHead -> next; } } if(pHead1 == NULL) { while(pHead2 != NULL) { pHead->next = pHead2; pHead2 = pHead2->next; pHead = pHead -> next; } } if(pHead2 == NULL) { while(pHead1 != NULL) { pHead->next = pHead1; pHead1 = pHead1->next; pHead = pHead -> next; } } pHead -> next = NULL; return pout; }};
0 0
- 剑指offer 17-合并两个排序表的链表
- 剑指Offer之合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 【剑指offer】Q17:合并两个排序的链表
- 剑指offer-17:合并两个排序的链表
- 剑指offer系列源码-合并两个排序的链表
- 剑指offer--合并两个排序的链表
- 剑指offer之合并两个排序的链表
- 剑指Offer之 - 合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 剑指Offer-合并两个排序的链表
- 剑指offer:合并两个排序的链表 代码实现
- 《剑指Offer》面试题:合并两个排序的链表
- 合并两个排序的链表(剑指offer)
- 《剑指offer》合并两个排序的链表
- 剑指Offer系列---(19)合并两个排序的链表
- 剑指 offer:合并两个排序的链表
- 【Spring Boot】定时任务实现
- 你们知道工控资料窝吗
- 软件版本-管理-知识
- Hessian实例
- 【DragonBoard】刷Debian系统
- 剑指offer:合并两个排序的链表
- Python进阶(八)-编写带参数decorator
- 一直在路上
- 蓝桥杯——芯片测试
- 2017最新Windows环境下IOS APP上架流程(详细图文)
- nodejs express创建项目
- leetcode237 Delete Node in a LinkedList java
- 使用moy快速开发后台管理系统(四)
- Android 炫酷插件