合并排序的链表

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

分析:合并过程中,每次都是从两个链表中找出较小的一个来链接,因此可以采用递归来实现:当任意一个链表为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 }

 

posted @ 2019-05-04 20:33  JingMo  阅读(110)  评论(0)    收藏  举报