剑指offer:合并两个排序的链表
来源:互联网 发布:数据可视化 编辑:程序博客网 时间:2024/06/05 15:28
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:假设 链表1:1->3->5->7
链表2:2->4->6->8
链表3:1->2->3->4->5->6->7->8
我们可以先比较两个链表的头结点,发现链表1的结点值1小于链表2的结点值2,那么合并后的结点头结点就是链表1的头结点1,接着比较链表1的第二个结点3和链表2的头结点2,发现2<3,那么就把链表2的头结点合并为1->2,依次递归实现后面的结点。
我们还有考虑到空链表的问题,如果链表1是空链表,那么返回的应该是链表2,;如果链表2是空链表,返回的是链表1,;如果两个链表都是空,则返回空。
代码如下:
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null)
return list2;
if(list2==null)
return list1;
if(list1==null&&list2==null)
return null;
ListNode pMergeHead=null;
if(list1.val<list2.val){
pMergeHead=list1;
pMergeHead.next=Merge(list1.next,list2);
}else{
pMergeHead=list2;
pMergeHead.next=Merge(list1,list2.next);
}
return pMergeHead;
}
}
- 剑指offer 17-合并两个排序表的链表
- 剑指Offer之合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 【剑指offer】Q17:合并两个排序的链表
- 剑指offer-17:合并两个排序的链表
- 剑指offer系列源码-合并两个排序的链表
- 剑指offer--合并两个排序的链表
- 剑指offer之合并两个排序的链表
- 剑指Offer之 - 合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 剑指Offer-合并两个排序的链表
- 剑指offer:合并两个排序的链表 代码实现
- 《剑指Offer》面试题:合并两个排序的链表
- 合并两个排序的链表(剑指offer)
- 《剑指offer》合并两个排序的链表
- 剑指Offer系列---(19)合并两个排序的链表
- 剑指 offer:合并两个排序的链表
- iOS开发 获取当前视图最顶层的ViewController
- 1145: 箭头面积
- maven 中 pom.xml 文件报错
- Cartographer ROS for TurtleBots Building & Installation
- 【Sonar】——要求
- 剑指offer:合并两个排序的链表
- javaweb项目压缩成war包步骤及报错处理
- [LintCode]Remove Linked List Elements(C++)
- 常见类---String类和StringBuffer类的相互转换
- eclipse 配置黑色主题
- 乘法口诀每隔1秒输出一个数
- Unreal4AR插件Editor demo版本的安装
- C结构体、C++结构体 和 C++类的区别
- Redis 持久化之RDB