题干
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路
记得之前在写合并时候有写到合并两个排序的数组,使用的是先创建一个数组,然后取数组的较小值放入到新数组中,然后进行位置的加一,依次类推,最后再进行一个判断,是否到达了数组的末端,因为有可能会出现一个数组的最小值都大于另外一个数组的最大值。这里是链表,使用到了另外一种递归解决的方法,发现更加简单。
代码
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null)
return list2;
if(list2==null)
return list1;
if(list1.val<=list2.val){
list1.next=Merge(list1.next,list2);
return list1;
}
else{
list2.next=Merge(list1,list2.next);
return list2;
}
}
}