算法--合并两个排序的链表
程序员文章站
2022-03-26 17:40:47
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。示例1输入{1,3,5},{2,4,6}返回值{1,2,3,4,5,6}在线链接代码:public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { if(list1 == null ){ return list2; }...
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例1
输入
{1,3,5},{2,4,6}
返回值
{1,2,3,4,5,6}
在线链接
代码:
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1 == null ){
return list2;
}
if(list2 == null){
return list1;
}
ListNode dumpy = new ListNode(0);
ListNode help = dumpy;
while (list1 != null || list2 != null){
if(list1 != null && list2 != null){
if(list1.val < list2.val){
help.next = list1;
list1 = list1.next;
help = help.next;
}else {
help.next = list2;
list2 = list2.next;
help = help.next;
}
}
if(list1 == null){
help.next = list2;
break;
}
if(list2 == null){
help.next = list1;
break;
}
}
return dumpy.next;
}
}
思路概述:
如此反复,如果一个链表提前为空,则把help的next指针直接指向另一个链表投即可。
最后返回dumpy的next结点
本文地址:https://blog.csdn.net/weixin_43105156/article/details/110285775
上一篇: 装饰者模式,代码实现类图
下一篇: 天猫好房CBA,重塑互联网“最重”人货场