一、题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则
二、思路
1.先判断是否是特殊条件
1.1如果两个链表list1、list2都为空,则返回空
1.2如果list1为空则返回list2
1.3如果list2为空则返回list1
2.当两个链表都不为空的时候
将数值小的结点加入链表中
3.当其中一个链表已经遍历完时
直接将剩下的那个链表中的结点依次加入新链表中
三、代码
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null&&list2==null) return null;
if(null==list1) return list2;
if(null==list2) return list1;
ListNode node = new ListNode(-1);
ListNode list = node;
while(null!=list1&&null!=list2){
if(list1.val>list2.val){
list.next =list2;
list = list.next;
list2 = list2.next;
}else{
list.next = list1;
list = list.next;
list1 = list1.next;
}
}
while(null!=list1){
list.next = list1;
list = list.next;
list1 = list1.next;
}
while(null!=list2){
list.next = list2;
list = list.next;
list2 = list2.next;
}
return node.next;
}
}
来源:https://www.cnblogs.com/blzm742624643/p/12238143.html