leetcode-21-java

问题:21. Merge Two Sorted Lists

1
2
3
4
5
6
7
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing 
together the nodes of the first two lists.

Example:

Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4

leetcode地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* Input: 1->2->4, 1->3->4
* Output: 1->1->2->3->4->4
* @param l1
* @param l2
* @return
*/
public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode dummy = new ListNode(0);
ListNode cursor = dummy;
while (null != l1 || null != l2) {

if ((null != l1 && null != l2 && l1.val <= l2.val) ||
(null != l1 && null == l2)) {
cursor.next = l1;
l1 = l1.next;
} else {
cursor.next = l2;
l2 = l2.next;
}
cursor = cursor.next;
}
return dummy.next;
}

private static class ListNode {
int val;
ListNode next;

ListNode(int x) {
val = x;
}
}