题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
分析:合并过程中,每次都是从两个链表中找出较小的一个来链接,因此可以采用递归来实现:当任意一个链表为null时,直接链接另一个链表即可;其余情况只需要在两个链表中找出较小的一个结点进行链接,该结点的next值继续通过递归函数来链接。
1 public class Solution { 2 public ListNode Merge(ListNode list1,ListNode list2) { 3 if(list1==null){ 4 return list2; 5 }else if(list2==null){ 6 return list1; 7 } 8 9 ListNode temp=null; 10 if(list1.val<list2.val){ 11 temp=list1; 12 temp.next=Merge(list1.next,list2); 13 }else{ 14 temp=list2; 15 temp.next=Merge(list1,list2.next); 16 } 17 return temp; 18 } 19 }