merge two sorted lists

思路

  • 判断有无空链表
  • 定义一个新的头结点MergeHead
  • 利用递归法(MergeHead = ? , MergeHead.next = ?)

注:只涉及到指针操作,而不设计节点操作不需要new ListNode(),对比题Romove Nth ListNode of List

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Solution{
public ListNode mergeTwoSortedLists(ListNode l1 , ListNode l2){
if(l1 == null)
return l2;
if(l2 == null)
return l1;
ListNode MergeHead = null;
if(l1.val < l2.val){
MergeHead = l1;
MergeHead.next = mergeTwoSortedLists(l1.next,l2);
}else{
MergeHead = l2;
MergeHead.next = mergeTwoSortedLists(l1,l2.next);
}
return MergeHead;
}
}