题目
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要新合成后的链表满足单调不减规则。
解题思路
分别遍历两个链表,每一个都比较两个链表的头结点,把小的那一个头结点放到一个新定义的链表中,因为每一个比较合并的过程都是一模一样的,所以可以使用递归来实现。这里要注意输入的链表为空的特殊情况。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1 == null)
return list2;
else if (list2 == null)
return list1;
ListNode relist=null;
if(list1.val < list2.val){
relist = list1;
relist.next = Merge(list1.next, list2);
}else{
relist = list2;
relist.next = Merge(list1,list2.next);
}
return relist;
}
}