题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则
分析:链表1的头结点小于链表2的头结点,那么链表1的头结点将是合并后链表的头结点,如果链表2的头结点小于链表1的头结点那么链表2的头结点将是合并后剩余节点的头结点,当我们把两个链表中值较小的头结点链接到合并的链表之后,两个链表剩余的节点依然是排序的,合并过程和以前一样这样就是递归。当第一个链表是空链表,那么需要和第二个链表合并,同样第二个链表的头结点是空,那么和第一个链表合并。
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null){
return list2;
}
if(list2==null){
return list1;
}
ListNode merge=null;
if(list1.val<list2.val){
merge=list1;
merge.next= Merge(list1.next,list2);
}else{
merge=list2;
merge.next= Merge(list1,list2.next);
}
return merge;
}