题目:输入两个单调递增的链表l1,l2,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:思路很简单,我们可以用递归,定义一个结果链表,循环长度小的链表,如果l1的值小于l2的值,则把l1的值放在result中的后边,以此类推,但是,我们需要注意当输入l1和l2为null的情况,如果l1为null,l2!=null那么直接返回l2,如果l2为null,l1!=null那么直接返回l1,如果都为null那么返回null。
代码:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null&&list2==null)
{
return null;
}if(list1==null)
{
return list2;
}if(list2==null)
{
return list1;
}
if(list1.val<list2.val)
{
list1.next = Merge(list1.next,list2);
return list1;
}
if(list1.val>=list2.val)
{
list2.next = Merge(list1,list2.next);
return list2;
}
return null;
}