Skip to content

Commit 0f9c2ee

Browse files
merge two sorted lists solution
1 parent 8294a51 commit 0f9c2ee

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import java.util.List;
2+
3+
// Definition for singly-linked list.
4+
class ListNode {
5+
int val;
6+
ListNode next;
7+
ListNode() {}
8+
ListNode(int val) { this.val = val; }
9+
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
10+
}
11+
12+
class Solution {
13+
14+
public static void main(String[] args) {
15+
Solution s = new Solution();
16+
var list1 = new ListNode(1);
17+
list1.next = new ListNode(2);
18+
list1.next.next = new ListNode(4);
19+
20+
var list2 = new ListNode(1);
21+
list2.next = new ListNode(3);
22+
list2.next.next = new ListNode(4);
23+
24+
System.out.println(s.mergeTwoLists(list1, list2));
25+
}
26+
27+
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
28+
// A와 B 헤드를 비교
29+
// A가 더 작거나 같으면 A 헤드를 빼서 새 노드로 추가
30+
// 그렇지 않으면 B 헤드를 빼서 새 노드로 추가
31+
// TC: O(N+M), N: list1의 길이, M: list2의 길이
32+
// SC: O(N+M), N: list1의 길이, M: list2의 길이
33+
ListNode mergedList = null;
34+
35+
while(list1 != null && list2 != null) {
36+
if (list1.val <= list2.val) {
37+
mergedList = addNode(mergedList, list1.val);
38+
list1 = list1.next;
39+
} else {
40+
mergedList = addNode(mergedList, list2.val);
41+
list2 = list2.next;
42+
}
43+
}
44+
45+
while(list1 != null) {
46+
mergedList = addNode(mergedList, list1.val);
47+
list1 = list1.next;
48+
}
49+
50+
while(list2 != null) {
51+
mergedList = addNode(mergedList, list2.val);
52+
list2 = list2.next;
53+
}
54+
55+
return mergedList;
56+
}
57+
58+
private ListNode addNode(ListNode node, int val) {
59+
if (node == null) {
60+
node = new ListNode(val);
61+
} else {
62+
var last = node;
63+
while(last.next != null) {
64+
last = last.next;
65+
}
66+
last.next = new ListNode(val);
67+
}
68+
69+
return node;
70+
}
71+
}

0 commit comments

Comments
 (0)