问题
思路
使用递归的方法的要求
- 当数据较小的时候很好计算
- 数据交大的时候可以分解成数据很小的时候的情况
递归方法的三个要点
3. 结束的条件 这里是当一个链表是空的时候
4. 结束的时候的动作 这里是直接把非空的链表返回或者两个都是空的返回空
5. 怎么把大问题分解为小问题 这里是取两个链表的头,然后拿小的作为总链表的头,指向其他所有链表合并之后的头结点。
代码
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
ListNode ans;
if(list1==null)return list2;
else if (list2==null) return list1;
else{
if (list1.val<list2.val){
ans=list1;
list1.next=Merge(list1.next,list2);
}else{
ans=list2;
list2.next=Merge(list1,list2.next);
}
return ans;
}
}
}