输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
public class Merge {
public ListNode Merge(ListNode list1, ListNode list2) {
if(list1==null&&list2==null)
return null;
ListNode res=new ListNode(0);
ListNode cur=res;
ListNode node1=list1;
ListNode node2=list2;
while (node1!=null&&node2!=null){
if(node1.val<=node2.val){
cur.next=node1;
node1=node1.next;
}else{
cur.next=node2;
node2=node2.next;
}
cur=cur.next;
}
if(node1!=null)
cur.next=node1;
if(node2!=null)
cur.next=node2;
return res.next;
}
//剑指offer的递归思路
public ListNode Merge2(ListNode list1,ListNode list2){
if(list1==null)
return list2;
if (list2==null)
return list1;
ListNode res=null;
if(list1.val<=list2.val){
res=list1;
res.next=Merge2(list1.next,list2);
}else {
res=list2;
res.next=Merge2(list1,list2.next);
}
return res;
}