剑指offer 编程题(15):链表合并
来源:互联网 发布:网络教育专业选择 编辑:程序博客网 时间:2024/05/29 18:34
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
/*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==nullptr) { return pHead2; } if(pHead2==nullptr) { return pHead1; } ListNode* res=nullptr; if(pHead1->val>=pHead2->val) { res=pHead2; res->next=Merge(pHead1,pHead2->next); } else { res=pHead1; res->next=Merge(pHead1->next,pHead2); } return res; }};
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode *p=new ListNode(0); *q=p;//两个指针都指向合成后新链表头节点,p用来做插入,q用来保存头结点地址 if(!pHead1) return pHead2; if(!pHead2) return pHead1; //若有某一个链表为空,则返回另一个 while(1) { if(pHead1->val<pHead2->val) { p->val=pHead1->val; //如果L1值小,则L1向下走 pHead1=pHead1->next; } else { p->val=pHead2->val; //如果L2值小,则L2向下走 pHead2=pHead2->next; } if(pHead1==NULL||pHead2==NULL) //若某个链表走完,则跳出 break; p->next=new ListNode(0); //不断增加合成后链表的节点 p=p->next; } if(!pHead1) p->next=pHead2; if(!pHead2) p->next=pHead1; //若某个链表走完,则将另一个链表续在合成后链表的末尾 return q; }};
阅读全文
0 0
- 剑指offer 编程题(15):链表合并
- 剑指offer-合并链表
- 剑指offer 合并链表
- 【剑指Offer面试编程题】题目1519:合并两个排序的链表--九度OJ
- 合并两个排序的链表(剑指Offer 第 15 题)
- 剑指offer:第17题合并链表
- 剑指offer(18):合并两个排序的链表
- 剑指offer(13)-合并两个排序的链表
- 剑指offer:合并两个排序的链表(java)
- 剑指offer(十六)合并两个排序的链表
- 剑指offer--合并两个递增链表
- 剑指Offer-17-合并有序链表
- 剑指offer-合并排序链表
- 剑指offer----合并两个有序链表
- 剑指offer——合并链表
- 《剑指offer》合并两个有序链表
- 剑指offer-合并两个有序链表
- 剑指offer第16题(合并两个排序的链表)
- 关于Java读取文件操作时路径中的斜杠问题
- [BZOJ]4872 [SHOI2017] 分手是祝愿 期望DP
- I can 前端-09 数据验证与ASP.NET验证控件
- Qt 门户网站
- 笔记-cs224n(基于深度学习的自然语言处理)
- 剑指offer 编程题(15):链表合并
- [Spark--版本更新]----2.2.1发行说明
- 独家 | 盘点BAT顶级人才变动,窥探各家AI战略
- 5-2 派生类的构造函数
- 工信部印发通知:促进AI产业发展,部署三年行动计划(附全文)
- java泛型
- Hibernate回顾1---配置文件
- 阿里云---阿里云服务器ECS开放8080端口
- QTableWidget与QTableView的区别