1.题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
例:
链表1: 1 ----> 3 ----> 5 ----> 8 链表2: 2 ----> 4 ----> 6 ----> 7
合并结果:
1 ----> 2 ----> 3 ----> 4 ----> 5 ----> 6 ----> 7 ----> 8
2.解题思路
-
判断有没有ListNode是空的,如果有则返回另一个
-
递归实现,如果List1.val<list2.val,pMergeHead = list1,否则pMergeHead = list2,递归直到两个ListNode都为空
3.代码
/*
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 pMergeHead = null;
if(list1.val<list2.val){
pMergeHead = list1;
pMergeHead.next = Merge(list1.next,list2);
}else{
pMergeHead = list2;
pMergeHead.next = Merge(list1,list2.next);
}
return pMergeHead;
}
}