要求:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:使用递归的手法,将两个链表的头节点进行比较,较小的接到合并的链表后。鲁棒性:一个链表为空时,另一个链表就是合并的结果;两个链表为空,直接返回一个空链表。
public class L26_Merge {
public static ListNode0 Merge(ListNode0 head1, ListNode0 head2){
// 递归退出条件
if(head1==null){
return head2;
}else if(head2==null){
return head1;
}
ListNode0 MergeHead = null;
if(head1.value < head2.value){
MergeHead = head1;
MergeHead.next = Merge(head1.next,head2);
}else{
MergeHead = head2;
MergeHead.next = Merge(head1,head2.next);
}
return MergeHead;
}
}
网友评论