21. Merge Two Sorted Lists

Dummy Node and Two Pointers (My Solution)

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
class Solution {
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {

ListNode cur1 = list1;
ListNode cur2 = list2;

ListNode dummy = new ListNode(0);
ListNode cur = dummy;
while(cur1 != null && cur2 != null){
if (cur1.val > cur2.val){
cur.next = cur2;
cur2 = cur2.next;
} else {
cur.next = cur1;
cur1 = cur1.next;
}
cur = cur.next;
}

if (cur1 != null){
cur.next = cur1;
} else if (cur2 != null){
cur.next = cur2;
}

return dummy.next;
}
}

Remarks:

  1. don’t forget to connect the remaining nodes of cur1 or cur2